It is possible to give a kid too much praise, which backfires in its effect as they really understand is not merited and it makes them anxious. Stop comparing him (favorably or unfavorably) to others, for one thing. Even favorable comparisons set up the feeling that one is being judged, which of course is productive of anxiety. I would talk to a counselor about messages you are unintentionally giving in your attempts to make him feel good about himself. Don't spank him, it will just add to the problem.
I having a hard time picturing your son, affiy. When you say he irritates everyone and thinks he is the best and wants everyone to follow him, that doesn't match with he's very generous and tries to please everyone.
It's like you're describing two completely different behaviors.
Can you give examples of times he tries to please everyone too much, and examples of when he thinks he is the best?