Since DS is 20 mos we're just working it out now, but when DS hurts another child (he pushed one of his little friends a few times today
), I encourage him to notice how the other child feels: "See, DS, your friend is so sad! Can you think of anything you can do to make him/her feel better?", then (since he's still young) I prompt him: "Maybe you could give a hug? And can you remember what you can say that makes people feel better?", and then if he doesn't think of it, I prompt him again with the word: "sorry", which he usually is happy to say and give the hug-- though I would never force him to do this and would apologize on his behalf if necessary.
I don't want "sorry" to be something that automatically pops out of his mouth as though it has the magic effect of making everything all better, so we're focusing on other things like hugs, finding a toy to give the other child if that was the source of the dispute, and noticing how sad he/she is so that he'll eventually understand that saying sorry is just the first step in making up for a mistake, whether intentional or accidental, but I agree with many of the pp's that it's an important social convention. I will never "make" DS say sorry (or any of those other words I've heard parents forcing their kids to say), but, at least while he's so young, I feel comfortable prompting him with the words. Of course, we also do a lot of modeling, as we all apologize to each other when appropriate. Once he is older, I expect that I'll be able to stop prompting, but maybe a gentle reminder might be still required, which I think would be ok as long as it does not embarrass either child.