In the foster care system, we are instructed to move a screaming child having a tantrum into an open area where they can't hurt themselves and let them go. Let her scream, let her flail, etc. In a non-obvious way, watch the tantrum only to insure there is no injury, otherwise ignore it. This worked well with both of my daughters.
As far as your son, you may want to offer him alternatives for expressing his anger. First relate to him that his current behavior is completely unacceptable. Then offer alternatives such as hitting a pillow, get a character punching bag, or if he is artistic - tell him to draw pictures that show his feelings. Give him a "safe" place where he can go and yell and have a fit where it won't bother you but lets him vent his frustration. If the self injury continues, remove privileges such as TV, video games, a favorite toy and DO NOT CAVE IN and give these things back until the behavior ends. Once he sees you truly mean it, things will change. The other alternative which would be difficult for me, is to take the Love and Logic method. Ignore him when he is hurting himself, then treat the injury in a detached, clinical way, and say "That must really hurt. Some people hurt themselves for attention. What do you think about that?" But as I said, I'd have a very hard time allowing a child to continue hurting himself. Maybe as a last resort I'd try it.
On both these things, I agree with another post that said make sure you and your husband are a united front and both uphold consequences imposed by the other.
Best of luck,
K. E