He is not aggressive to all small dogs, just one or two I know. I didn't see why he attacked him, because I was getting ball for him. It was just a second. That little dog was rescued recently and is always on leash; because his owner is afraid he would run away. He usually jumps in the dog faces, but I didn't see, so I can't say what set Buddy off. My dog plays very good with others at Dog Park, he is not playing aggressive. They wrestle, chase each other. He is not allowed to hump the other dogs.
I try to socialize him a lot, I am afraid, if I don’t he will become overprotective of us and then we will have a problem.
Your dog being 'protective' of you and your family has nothing to do with socialisation. If your dog is becoming overprotective it's because you haven't established yourself as a leader and your dog has taken on the role.
Small dogs are known to be more aggressive than larger dogs. This is nothing to do with genetics, it's simply a consequence of owners not taking precautionary measures to discourage the behaviour in small dog breeds because it isn't perceived as a problem. Someone with a jack russel that growls at little kids when they come up to pet it, might excuse the behaviour as the dog being "cute", when, in fact, it's coming from the same place as an aggressive large breed dog. Now if you imagine the same scenario but with a german shepherd, it's not only a lot more frightening but also potentially dangerous.
You will never know why your male dog attacked this smaller dog. But I doubt it has anything to do with your dog being fearful. You mentioned a ball which leads me to believe that it's probably possessive. Your dog probably has dominance issues. Prey-guarding, as it's called, is an extension of dominance and results from your dogs perception that the prey objects (e.g. balls, tugs, toys) that you give him, are his possessions. So he defends them in order to both consolidate his current perception of rank and to obviously maintain his possession of the object.
Dog's often generalise, so if he was attacked, or attacked a small dog in the dog park, he may now be aggressive to all small dogs in general, because he remembers the situation.
You may have to come to terms with the fact that this problem may never be completely resolved, a dominant dog-aggressive dog, at best, can only be managed - but this all depends on the extent to which your dog is displaying these behaviours. You can work on getting your dog to ignore smaller dogs that he's around but this will be completely counter productive if you keep taking him to dog parks, allowing free interaction with other dogs, without full control of your animal.
Going to a dog park and letting your dog run lose with other animals is not what I would consider "good" socialisation. It promotes "doggie" behaviour (i.e. you create a dog that is obsessed with interacting with other dogs), which detracts from EVERY training aim that you might aspire to. Socialisation should be about recognising that your pack consists of YOU and YOUR DOG (and family members of the household, if any) and nothing or no-one else. Socialisation should be able getting your dog used to being in the presence of distracting and potentially challenging situations but the AIM is to have your dog ignore these factors and focus on you. THIS IS IDEAL....
BUT....
If you still want to force socialisation upon your dog, then he needs to be controlled. You should start by taking away objects that promote possession, such as his tennis ball or whatever. This may outright mean no more fetch at the dog park. If this does not work then you may have to try discouraging the behaviour, teaching him to only interact with certain dogs - but I'd be very hesitant about using corrections. And finally, if all these avenues fail, you may be left with only one choice - to stop going to dog parks and to have control of your dog at all times. It's all up to you, but remember, you now have a liability on your hands.