It seems like the biggest killer to marriages is people build up their fortresses and suddenly the marriage is no longer a partnership but a battle.
There are a couple of huge positives, your husband has improved, no one is perfect and there will always be set backs but people can learn to control their anger and communicate in a more productive way. You have to acknowledge improvement as a sign that the other person recognizes their part in it, even if they aren't willing to admit it. Your husband has suggested therapy. That means he wants the marriage to get better.
What it takes to make it is when you both decide that it's not one person's problem, but a shared problem. Whether you guys know it or not, your familiarity with each other has given you the weapon's to bring out the nastiness in each other. When you get into fight mode, do you feel like you guys are working toward a solution, or trying to hurt each other?
I would definately suggest therapy, most therapists would not fall for a nice guy act and put the blame on one person, it's counter productive to a solution, and they have an interest in a solution too.
You guys are not alone, your ultimate solution will be uniquely yours, but the feelings both of you are going through right now is very human and IMHO fixable if you both want to make it work.
That said, violence can never be tolerated, and that was a huge red flag in the beginning of your post. It does sound like an isolated incident, but its a line that should be watched always.