L.F.
Boy, can I relate! My son was horrible when he was 3 and I operated a at home day care. He was the worst kid enrolled!
I also teach preschool and here is what I can tell you. Some kids just don't do well in groups, it is too over stimulating.
It sounds like he can "be nice" if it is just him and another child. Try talking to him about appropriate behavior before you arrive at a place where there will be lots of kids. Then catch him being good and praise the heck out of him! Also try rewards for good behavior.
One thing we use in our classroom is social stories. It is a story we write ourselves about a particular behavior we are working on. Just a few sentences and we either draw simple pictures or get pics or the internet. For example;
Sometimes we go to the park.
There are lots of kids to play with there.
I use good manners at the park,
I have nice hands.
I listen to the rules.
Etc, etc...........Just keep it positive and simple. Then read it to him just before going into that particular situation. These are called social stories and they really help with negative behavior.
Also, don't be afraid about preschool, it will be good for him. And the advice given earlier about having him screened is excellent advice. I would look into that.
Take care!