The daycare our son attends encourages sharing in the following manner. If child A grabs a toy from child B who isn't done playing this it, A is told share, and made to return it to B. Then A is given another of the same item B was playing with.
They are being trained not to be grabby.
In a kiddie museum situation, I keep an eye on my kid. If he's playing with all the vegetables, and another kid grabs some that he isn't playing with at the time, I hand them to the other kid, and tell mine to share.
If someone grabs something out of his hand, and he doesn't object, I don't correct the other child. If someone grabs something out of his hand, and he does object, I will step in and say to the other child, sorry, DS wasn't done playing with that, can you please give it back. If that fails, I will tell DS looks like that boy doesn't want to share, let's play with something else.
If my child grabs something from someone elses' hand, I will correct my child, say no grabbing. I will then provide a voice for him and the other child by saying something like, Other child, DS would like to play with the block, but he's a baby and doesn't know how to ask to share. Can he play with the block. Other child can they say yes or no, and I will oblige him.
I applaud your attitude re: allowing kids to problem solve and work out peer relationships.
Our DS is not toping the percentiles, but he is a sturdy two year old. He is also not yet speaking. In a kiddie museum setting though, given my kid's size and non-verbal status, I feel the need to keep a close eye so that mine doesn't get tagged as a bully based on assumptions by other parents.
Good luck to you and yours,
F. B.