@Maxwell, I agree with suzy - get a job for the boy. It makes him a more responsible person. I know when my kids are that age/grade, I'd like to have them either get a job or do volunteer work, just so that they know what it's like to take responsibilities.
At least he sees the problem. That's a good first step. Even if he doesn't go into top colleges, he can get into a decent college and still be successful and happy, if he is motivated.