Three is really hard. I also like Aha Parenting.
At three they very much live in the moment - it doesn't really help if you speak to them later because they won't remember it in the moment. They do often seem to understand when you speak to them, but they won't be able to apply it later. So you need lots of managing in the moment and a lot of repitition.
Okay so to go by issue - snatching. They don't yet understand things belonging to others, they just see something they want and it doesn't occur to them that taking it would not be the right thing to do. But what they do understand is turn taking, but you have to teach it to them. So you can help avoid snatching by keeping a close eye on him when he's near other children. If you see he's about to snatch something then you hold his hands gently and say "Wait, DS. Annabel's book. Annabel's turn. We can wait." When Annabel gets bored of the object, then you can give it to DS and say "Thank you, Annabel! Look, now it's DS's turn." Just really simple language, as few words as possible. In fact, it works better to introduce the concept with something like a slide where the turns are short and clearly defined, than a book, but you get the idea. Practise at any chance you get even when there isn't a problem. Then you can use talking about turns both to help DS give up an object which he has been using for too long, and to help him understand that he can't just grab something from another child. And it helps safety with things like slides. It can also be useful if you're busy with DC2 and need him to wait for your attention.
Hurting other children is obviously not okay. So again you can talk about turn taking if the problem is impatience. Otherwise you can hover and remove him if he's about to hurt another child. If you're too late (it happens) then apologise to the parent, comfort other child if parent is absent, take him away and point out that the other child is upset, but no long talks with lots of attention. You could use this as a short time out as well. You can acknowledge that he wanted (whatever) but give him/remind him of a strategy to get what he wants without hurting - a nice phrase is "Use words, not hands" Of course you might need to also remind him that just because he wants something, it doesn't mean that others have to give it to him!
Running around you might just have to keep reminding him to be careful and that people aren't skittles, it hurts to be knocked over and that's not a game that we play. If he wants to knock things over maybe you can make a game where he can knock over skittles, or teddies, or brick towers (brick towers are also great fun to build for baby brothers to knock down). But not people. If he can't behave in a setting it's a good idea to avoid that setting for a while. And as a general thing, it might be an idea to watch his behaviour generally and see if it tends to deteriorate after a certain amount of time. I couldn't do playdates over an hour when DS was three. They do go through phases when they are more frustratable than others and it's fine to dial back social activities a bit and spend more time at home.
The other dad was out of line. It's not okay to shout and frighten other people's children. Perhaps a shout out of fear or shock is okay but if the parents are around then it should be left to them to discipline, he shouldn't have taken it upon himself.