OP, I think you're doing great so far, trying so many strategies and being so consistent. Engaging him in simple reflective discussions about how others feel can be done at the moment of transgression, or role-played at home with just the two of you.
Role-play sharing during play teatime parties, but take away his or teddy's cake and ask how teddy feels, or play hospitals with a toy that has fallen over and try and make links as to how his little friends feel when he has pushed them over.
As the OP asked WDYD, I think it would be nice if we didn't attack other poster's solutions. I can see this thread having the potential to be very helpful, as long as sectarian violence doesn't break out over smacking (or gentle physical reprimands) as forming part of the solution.
The OP is obviously a thoughtful mother who has researched behaviour management and she can work out for herself which methods she feels might make a difference to her DS's behaviour.