I wish I knew the answer to this, as I have been going through this with my DS1 (3.4) for ages now - I just didn't want your post to go unanswered.
There have been periods when it has got better, but it has, so far, always returned, and we are in a bad phase of it now. I find it mortifying, and feel very discouraged that he just doesn't seem to get it. For what it's worth, we have decided that he is now old enough to understand that it is wrong, and we just leave the park/playdate/whatever when he does it - he gets one warning, delivered as calmly as I can manage it, and if he does it again, we go. It has meant quite a few ruined outings, and I just feel like I have to sit tight and wait for it to sink in.
It's odd, because it generally crops up over someone wanting to play on/with something that he's using, and he gets very territorial over it - and yet he will share things (food, especially - so maybe that's quite different to him?) with his little brother. Sigh.
I'm sorry, I really wish I had some pearls of wisdom for you...