If punching your monitor seems to help, have you thought about putting something in your hand before you swing? Maybe you're just not applying the right kind of blow. Start by wrapping your fist around a roll of quarters the next time your monitor gives you any ****. If that doesn't work, start keeping a hunk of galvanized pipe next to your desk. Show it who the boss is.
Or hit the yellow pages and see if anyone in your area does monitor diagnostics and repair. If this isn't a picture tube heading south (and it sounds like it well could be) it might be repairable for a lot less than buying a new 21".
BHD