Well I hate to tell you but your son is a very normal 2yo. Sharing takes time and doesn't come easy. But don't worry it will improve. Just tell him we are nice to our friends, and it nice to share with others and then they will share with you etc.
On the rare occasion he does share, give him lots and I means lots of positive praise. Tell him how wonderful that was. Best wishes