J.N.
I agree with the responses so far, and you're right that this behavior is 'normal' for a 2-year-old. She just cannot understand anything but her own desired. Not anti-social or bullying, just limitations of a 2-year-old brain.
That said, here is my suggestion:
When visiting their house, your friend can have her daughter decide which toys she doesn't want to share, and put them away from everyone for the visit. The rest of the toys are shared (if it is necessary, the little girl can play in her room alone and you can bring toys for your kids that stay in the front/family room). When they come to your house, do the same thing - pick which toys are to share and have them out in the family area, and don't allow the little girl to go into bedrooms/toyrooms. Just close the door and if she tries to go back there tell her gently "that room's off-limits). Kids this age shouldn't play together without an adult nearby anyway, as they often need someone to intervene before trouble starts.
Keep up with consequences. If she hits or pushes, immediate time out (2 minutes only). If she takes a toy, take it away from her and put it in timeout. Do the same for your kids so that she sees its all equal (their time-outs can be for 1 minute on your lap).
You'll need her mom's cooperation, but it sounds like she's trying to do the right thing. And yes, you have the right to step in and separate them, at your house or hers. They're your kids and its your job to protect them :)
Hang in there. Kids don't generally play together until they are 3. Before that, the best you can hope for is paralell play (playing next to each other with similar toys but not a lot of interacting). In the years to come, your children will be able to play together and enjoy each other's company as you and your friend envisioned.