Oh this is a tricky one. We have, I think, similar issues. DS is just rough with DD and I was so tired of saying: "Gentle" that I finally banned that word from my vocabulary.
I got some great guidance from Naomi Aldort's Raising Our Children book, which I love for everything. She asks you to try to take the POV of the older sibling and see the roughness as an expression of some other need. So while you have zero tolerance for the violence, you can recognize it as a young child's need to communicate something. I am assuming, though, that your DS isn't violent with you or friends or others, because I guess that would be a different issue. She assumed that it usually had to do with jealousy issues towards the baby. I guess that is usually the case.
What I tried doing, that played on her suggestions, was to get one of my son's stuffed animals and have him play rough with it. So if he wanted to roughly hug the baby, he was supposed to do it to the animal, etc. It kind of took on a life of its own and he completely adopted the animal as his baby--dressing it, nursing it, changing its diaper, carrying it around with us. It's a little tiring to take care of a baby and a stuffed baby, but once he had his own baby, he was a little better with mine.
I think that at three they can understand empathy, but they don't really understand what they are doing, so explaining too much just doesn't seem to work. I think all that can work is to just repeat that we don't hit anyone and figure out what the trigger or underlying impulse is. But asking: "Why did you do that" doesn't get good responses either, so you usually have to do the figuring out. Maybe someone who's more wise in the ways of siblings can chime in.
I am sorry for this situation. It's really stressful.