This has sparked more of an interest than I first thought!!
Believe me, a lot more people than you think have this problem. I too have an explosive temper - it runs in my family -, and I have been fighting it really hard those past few years.
Remember, when you have a conflict with someone and they are obviously wrong - there can be no justification in insulting somebody - your best move is to keep your dignity and let them disgrace themselves. Alone.
I know, it's not always easy. But do not forget that a lot of crimes are committed like this...
Next time, try to express verbally what you feel, like:
"I really feel that you are insulting me, and I will not accept it".
"Look at yourself, you are loosing control, and your dignity also".
Also, maybe you are facing a lot of stress unrelated to this incident, and this person pushed you one step too far.
Since the incident had a witness, talk to him, apologize, and express your indignation (verbally).
Did you read Kensho Furuya Sensei's book: "Kodo - Ancient Ways"? There is a chapter titled: "Make mistakes correctly".
What he means is that everybody makes mistakes. But it's never too late to fix things up, and it can be done with flying colors.
And like a friend of mine likes to say:
"Life is too short to be pissed off all the time".
And I would add: