I am with you on this one! DD2 has had a lot of trouble with this as she is quite bossy. It started mostly when she was in Yr1. We have talked to her a lot about what makes a good friend and how it feels when people are mean to her and would she like to be treated the way she has treated others. Its very hard and for you its even harder to explain to a 4 yr old.
I would try to notice every positive behaviour and actually say what was good about it. "that was very nice of you to let X chose the game, that is being a good friend" Actually discuss with her what is positive and negative about her behaviours and why they are upsetting to other children.
Erin is much better now at age 9 but still doesn't have a "best" friend and seems to flit from friend to friend.
I undertand your heartache, I cried when Erin's teacher told me another parent had complained, the fact that I teach at the school makes it even harder.
If I thin of anything else I will post again, hugs to you, you are a great mum cause you admit there's a problem and are dealing with it, so many mums I see at work blame evryone elses child but their own.