Anger problems

So I’m really torn on what to do. My husband, who really is an amazing guy and father has pretty bad anger problems. It doesn’t happen often, but when he does, it gets terrible. It’s like a switch is hit and he’s a completely different person. He’ll just completely lose his shit, start yelling and cussing, punching himself in the face and just makes me feel like shit. He has never hit me in anyway, or talked down on my appearance. But he’ll throw anything he can against me that he can think of. In the moment, he’s very manipulative and tries to put the whole fight on me, and tries to make me think that things he said or did didn’t happen. It doesn’t matter what I say or do, he just gets more mad. But it’s all when this switch is flipped, it’s almost like a personality disorder. It usually takes him awhile to calm down, I just try to stay as far away as possible. When he finally calms down, he feels like shit for the way he acted, apologizes and admits that it was all him and he needs help with his anger, but never gets it. We really can’t afford therapy atm and idk what to do or how to help him. I know that he sounds like a manipulative asshole, but this only happens once every few months. And when he’s not like that, he’s great, he’s amazing. But I can’t handle again. I’m pregnant and have a 3 year old. He’s never acted like that in front of him, but if he does it again, I’m leaving and he knows that. I don’t want to leave, but I can’t sit around and let that happen. And I don’t know how to help him.