I'm going with what Wiggles said, though I still don't know the full story. It's okay if it's in self-defense. In most cases it's not okay to start a fight over race (or religion or orientation or...), as that won't end well. I was going to say "whoever started the fight deserves to lose the fight", but there's so many exceptions to that. It is definitely not okay to say "you can't hit that person, that person's (insert race, religion, whatever here)". If you use that excuse, that would give the person immunity to harrass anyone without repercussions. If it's not okay to hit said person regardless ("you wouldn't hit a person with glasses, would you?"), then you would have thought up of a better way to react.
Or just do what the military does and do it behind our backs, touting that it has to be done in the name of freedom.
What I want to say is that it's impossible to form any clearcut rules on who's in the right because there will be exceptions to each rule, and I don't feel like dancing around the issue. What I will say is that I think Tom was throwing a lot more punches than I think was necessary (maybe a few would have been enough), just judging from that GIF, so judging from the GIF I'd say he was wrong. He has a right to defend himself, but it looks like he overreacted. The younger guy was also wrong for throwing the first punch, but Tom was more wrong.