I’m also against forcing kids to share. The only productive way of teaching anything is by example. If you don’t want your kid to grow up to be a greedy, materialistic person, let him observe you sharing and enjoying the process.
I don’t teach Klara to share. Instead, I teach her the difference between “ours” and “not ours.” It was hard the first couple of times but now she knows that if I say “this ball is not ours”, she can’t take it.
Overall, I think it’s not a good idea to try to get kids to carry burdens that are too heavy even for us as adults.