Okay...this is long, but hopefully something in here will help... :-D
I agree that he just might not be ready for preschool yet or maybe not full-time (not sure how often he goes). You could look into finding a preschool that only meets twice a week.
Before he goes to school every time, have him repeat the rules so he knows exactly what is expected of him... something like: "No fits,no hits, Obey Mrs. ____" (or whatever you want, but keep them simple 3-4 at most). I like to do it in a sing songy voice and have them repeat it back to me 4-5 times before we go somewhere. Then let him know ahead of time what the consequence for breaking the rules is and keep with it. For example, if your rule is to listen to the teacher, then you tell him ahead of time that he needs to listen to his teacher and if he doesn't, then he won't get to watch tv when he gets home (but make it something he REALLY likes...I don't know your son so I can't tell you what it is, but whatever you choose, stick with it...and if he doesn't break the rules, make sure you are willing to let him do it!). Maybe he might like to make a chart and put a sticker on the days when he follows the rules and that might be all the incentive he needs??? Maybe if he fills up the chart he can get a small toy???? (nothing more than a couple of dollars...for potty training, I had my kids fill up a chart and when they did they got to choose from a bag of toys (party favors from Wal-Mart...15 toys for $5, but they thought it was great!)) Work with the teacher. Tell the teacher the rules so she can practice them with him as well (often at a store if my kids start acting up, I say "what are the rules" and they repeat them and stop acting up immediately). Then ask the teacher when you pick him up if he broke the rules. If he did, then tell him that the teacher told you he broke x rule so he gets the before mentioned punishment. Also, make him apologize to the teacher for being disrespectful. The teacher will appreciate that too. Be very clear about what he did that was naughty. If he didn't break the rules, PRAISE him profusely!
I saw that you take his toys away for being naughty at school...I don't know if that is necessarily the right thing to do simply because it is not a direct consequence. I agree you should take away toys, but it should be when he has done something wrong with his toys (such as if he breaks them, they get thrown away and he doesn't get to have them anymore) so he learns that he needs to take care of his things or he won't have them. Plus, as you said, you will eventually run out of toys!!!
Also, have him play outside as often as possible to run around and get his energy worked out. I like to make up activities for the kids to do such as run to the wall as fast as they can and then come back and give me a high five. Or march around the yard with them singing "the ants go marching 1x1" and act it out. But most importantly, practice following instructions at home. Find games to play (such as memory or candyland castle) so he learns to follow instructions and if he doesn't, then he doesn't get to play. Practice having him pick up his toys, putting out dishes, picking up clothes and putting them in the laundry basket, etc.
My other suggestion is to keep track of how often you are telling him not to do things. With my 3 year olds and 2 year old, I find that the more I tell them not to do stuff, the more they do it. However, if I am ACTIVELY involved with them and tell them what they SHOULD do, they are less likely to act up. If I make them my "helpers", it gives them something to do and excites them. Have him help teach his sister how to share by leading by example. It is more work for me, but also a LOT less stressful. I also look for ways to praise them for doing the right things and get really excited about it. That way they get attention for doing good instead of primarily attention for doing wrong and they want to continue getting the praise. Such as, if I catch them calmly "reading" a book, I go out of my way to point out that they are doing a great job of turning the pages without ripping them and being a "good steward" of their stuff. We do all this in addition to consistent discipline, but I find when I go out of my way to tell my kids the things they are doing right, they are more likely to do those things and I don't have to "punish" them as much. Also, I don't know if you are doing this or not, but getting directly down to his eye level and having him sit there and look you in the eye while you are talking to him helps to drive the point home...I make my son sit and listen to the same thing over and over again until he is looking at me in the eye and can repeat it (I tell him that is what he needs to do). He learned pretty quick that it takes him much less time to listen and look the first time and he is more apt to remember it since he repeated it.
Just remember, consistency is the key. As long as you use consistent discipline, eventually it WILL work. He will learn he can't get away with stuff.