S.B.
Well, I was raised kind of old school and I raised my kids the same way.
If something couldn't be shared, it got taken away and put away. Toys that can't be shared, can't be played with. It didn't bother the kid who didn't get shared with because the other kid wouldn't let them have it anyway, but it did bother the kid who didn't want to share in the first place.
If you can't share it, you can't play with it.
At school, he needs to understand that they toys or the train table aren't HIS. They are for everyone. He wouldn't like it if other kids wouldn't let him play. Or put things away so no one else could have them. He may like them very much, but in that instance, the train table is for everyone and if he can't play nicely, then he can't play with that toy.
Kids can become very territorial over things and I think to an extent that's normal. They want everything to be MINE. But, the truth is, not everything IS theirs and they have to share.
I did daycare and had a little kid who didn't want other kids playing with blocks. He didn't want to build anything with them, he just didn't want anyone else having them. So...the blocks were put away. The next time they were brought out, if he tried to take the blocks or knock them down, he went in time out. There were legos and blocks and he wanted them ALL. He was offered something else to play with or he could sit in time out. His choice. But he didn't get to have all the blocks and keep them from the other kids. Finally he decided that building things together was more fun than not getting to play and share at all. It took some doing but it worked.
I kept it pretty simple. If you can't share, you don't get to play with it. They always choose sharing.
Sharing is something kids learn. And they don't always like it at first. I just always made it simple. If you can't share something, you don't get to play with it until you want to share.
3 is actually a really good age to begin teaching the sharing thing.
Best wishes.