Two year-olds are kind of wonderful in that they live in the moment. You never hear of a two year-old worrying about anything to come! They dwell completely in the present. So, even if you lecture them every day about sharing, chances are good they won't remember.
I would suggest that you add Time-Out. I know it's the old standby, but it works. If he acts up, put him in time-out for about one minute. It's not long, because if you leave him in there any longer, he won't remember why he's there.
Put him in time-out immediately and make sure you tell him, in very simple words, why he's there. Then, when you get him out of time-out, do it again.
You may be putting him in time-out twenty times a day. But that's normal when you first start using it. After a few days, he'll start to recognize that, "When I do that, mommy takes herself away from me." That's the ultimate punishment for a two year-old. Separation.
I would also start giving rewards (stickers work great) for good behavior. When he does a good job, give him a sticker on his "sticker chart." It's amazing what kids will do for stickers. And he will be more bound to repeat the good behavior if you notice it.
Good luck! http://keystosimpleliving.com/kids_behavior.php