I may be in a different position than that guy, but I have a way of dealing with people like this.
Step 1: They come at me all screaming and raving, I completely ignore them.
Step 2: They get even more angry, I start laughing and telling them how the angrier they get, the more I control the situtation.
Step 3: Dude tries to grab me, I stop laughing, look him straight in the eyes and say something along the lines of "Are you really trying to attack an anonymous athletic grown man? Reconsider it. Now walk your ass back to wherever you came from"
Almost without fail, that works. Never giving them any respect, and making them feel like they made a mistake with any attempt at aggression. That kid showed fear, and it empowered the dude, making him feel more macho. The more the kid said he didn't want to run or do anything, the more the asshole screamed at him.
So usually, that works.
If he didn't stop, it would be a brawl of some sort, I would never let a stranger hold me for any reason ever. Of course, its never gotten to that. Usually after steps 1 through 3 they say something like "Well, its... I'm mad... and you gotta go or I'll call the cops... " Then I respond positively "There you go, that's the appropriate way to do it, don't act so aggressive or you could get hurt my somebody who isn't as nice as me" then leave.
And all those people talking about what the cops will do if you fight back... What fucking cops? You don't get caught unless you sit around and wait for them. Knock the dude out and leave and its all good. Otherwise the cops just find a bloody dude and give him a similar lecture about the stupidity of coming at a criminal like a tough guy.