He seems scared of men, and I have never even really spanked him, I have only raised my voice at him at times. He is like a little kid that has to put everything in his mouth. He is also teething. He needs to chew on things. If you are raising your voice at him or spanking him you could be starting a behavior problem that you will regret.
Some dogs become very aggressive if they are scared too much when they are puppies.
You need to think of him as a child who hasn't learned your language yet. Dogs want to please you. Sometimes they just don't understand what you want. A firm but low toned voice and tons of patience will get you much better results. You might need to call a canine behavior specialist who can teach you to teach your dog.