I'm the father of a 3-year-old boy. He is extremely possessive about his things and refuses to share with other kids. But he cries for things which other kids have. He also doesn't mingle with other kids and complains a lot. He is cribbing and crying when in public functions. In addition, ee is very attached to me, e. g. when other kids are playing, he is looking for me.
Make it clear that his things are his, and he gets final say on whether or not to share them. Making him feel that he has control of the situation, at least with respect to his own toys, will make him feel more secure and perhaps more inclined to share. However, also make it clear that things that other kids have are theirs, and he has to get permission to play with them.
When you suggest that he share something, say something like, "so and so would like to share your toy, can you let him play with it? It would make him very happy." Also point out that if he shares his toys with others, they are more likely to share with him.
* Editing to mention that the previous answer didn't show up for some reason when I came to read the question, but I think we end up saying the same thing essentially. *
I have a pretty non traditional view on toddlers and sharing. From my history in developmental studies, toddlers don't share. It's not really a concept they can grasp. Yes they can be forced to give something of theirs away, but is that really how we want them learning to share things? Cooperative play and sharing don't really become feasible until closer to 4 and 5 years of age.
I look at it like this: if I ask you (a perfect stranger) to borrow your phone, you have every right to tell me to get lost. So here is how it goes in our household. My 2.5 year olds toys are his. Anything he owns is actually his. He has absolutely no obligation to share his things with anyone else. But, that also means he is learning that no one else is under any obligation to share their things with him. In a shared / public space, everything is up for grabs so long as no one else is using it. That means, if a child is playing with a toy, that child can keep playing with that toy for as long as he likes. However once he is finished playing with it, it's fair game, and if my son picks it up and plays with it, then he can play with it for however long he wants. But, in either situation (home or public), he is encouraged to ask another child if they would like to play with one of his toys.
I have no doubt that he will learn to share and no real reason to force something that isn't even age appropriate on him for the sake of making it look to others like I've taught him manners. It will happen in due time.
TL;DR - you can teach and model sharing from the beginning, but forcing a child before they are ready or able to understand will just end up in a lot of tears and fighting.