Yes, Jim, there is a law. I believe it is called assault, and assault and
battery if you use a weapon of any kind to hit the guy wearing the hat. I
also suspect that his baseball cap is covered under the First Amendment to
the Constitution. Did you ever consider that maybe he supports Vietnam vets,
or maybe just likes the hat?
Wearing of that cap is covered under the First Amendment as free speech, just like people I have seen wearing t-shirts with the "F" word on it.
I checked with a friend who is a deputy attorney general.
As Hugh smith said, he may support Vietnam Vets.
I noticed he immediately said he was not a Vietnam vet when asked; so I doubt he was trying to pass as one. Many family members of vets where hats, T-shirts, jackets, etc that identify with their kids, siblings or parents.
Did you ask if a family member was a vet?