Susanna:
We just attended a P.E.T. workshop yesterday, and got something to share.
Nobody, adult or children, likes to be embarrased. When you child hurts a "victim", he won't learn much if you scold him right at the spot and order him to apologize. That puts him in "trouble". Instead, go to the victim and, in an over-the-top way, sympathize with him, and (if your child is small) say sorry on behalf of your child. Put it in a way like "WE are very sorry. I'm very sorry you GOT hurt, and I'm sure so-and-so (your son) is sorry too.". Don't say "I'm sorry HE hurt you." And because your child is not in trouble, he's more likely to feel "guilty". He will slowly learn not to do that and to say sorry.
Afterwards, talk to your child about what happens. Don't scold him, but "discuss" the problem. Empathize with him if he says he did it because he got frustrated/was pushed over/ etc., but still point out what he should do if the same situation ever happens again. If you see other kids playing rough, point it out to him and teach him what is right. That's the best opportunity to teach your child.
One more thing. Little kids have no words to express their frustration/anger, so pushing/hurting other kids may be their ways of showing how unhappy they are. Teach your kids those words, no matter how young they are. When you see that they are angry/upset/frustrated, say "I can see you're upset, etc." Eventually they will link the feelings and the words, and hopefully can express themselves verbally rather than physically.
Hope this helps.