I was a little like this when i was 19 in my first full time job. It wasn't fun for me but one of my older coworkers really took me to task on my attitude. I left to go travelling shortly after but this experience of being confronted very directly made a deep impression on me. I had no idea i was being an ***. If you don't want to fire this person you should at least be VERY clear when he falls short. Sometime's getting fired is a gift once the initial shock is over.