Make the punishment hurt enough (and I DON'T mean physically) that you only have to talk about it once.

Sit him down when he is calm. Tell him that it is never ok to hit another living being to take out his anger (so he understands this means the dog and cat as well) and that his hitting is unacceptable. Then tell him that since talking to him about it in the past hasn't worked, you have made the decision that the next time he reacts in anger by losing control (notice I did not say JUST hitting here), that ______ will happen. Tell him that there will be no time outs, no second chances, that you mean business.

And then follow through. Do not budge for his crying, pleading or because you are embarrassed by the scene he makes. He knows exactly what buttons to push to get you to relent, so you have to purpose that you will not back off. It is only when he pays a price unacceptable to him that he will stop.

Think of it this way. A man who beats his wife usually only does it in private. He knows perfectly well how to control his anger when there is a police officer present, because THEN the price is something HE is not willing to pay for in order to get his anger out through hitting.

You know what he cherishes, what will make him the most upset to lose. And know that he will lose his temper, and you need to follow through and take it away for long enough that he understands he might not ever get it back the next time.

And then when you witness his temper kicking in, calmly remind him that if he needs to calm down, you will take him somewhere quiet until he is in control. If he lashes out, instill the punishment. The verbal prompt will help, because the next time he will be more likely to accept the offer or calm himself down.

I used to work with behavior disordered high school students way back in the dark ages, and when it came to violence, we made sure the consequence was swift, severe, and sure. Unless there was an organic cause of the child not being able to stay in control, this almost always worked after the first time.