How big is he right now, and how long are you handling him for? How long is he in his cage inbetween handlings? When you go to pick him up, do you mess around for a bit or just pick him right up? What are the conditions like when he is out being handled?
I ask these questions because I feel that you may find the reason why he's agressive in these answers. If he is too small and being handled for too long of a time period, you are putting extreme stress on him. Also, if you handle him too long and dont give him enough time to relax, he'll of course be very agitated. Time handling and inbetewen really is determined upon the size of the snake.
If you mess around moving stuff waiting to pick him up, this is causing undue stress. the best way to do it is just reach in, grab him, and bring him out. Even if he gets defensive, if you back off you will be conditioning him to "make the big hand leave if i act like i'm going to bite." The same goes for handling. If you get bitten, don't put the snake right back. This reinforces the snakes thought that if he bites, he will get to go back home. I keep mine out until they are calm, at that point i'll handle them for a while then let them go "back home."
Also what are the conditions in the room like when he's out? If you have a bunch of your sons friends over running around, this will also cause a natural defensive nature in this guy. I would reccomend to only have you and your son around when you let the snake out, no other pets and none of your sons friends (for the time being.) Keep it quiet, no sharp movements, and you should be fine.
As they have already said, it's going to grow 5-7 feet, the record length of a black rat is 101 inches. (just under 8.5 feet.) If your son is responsible, then he should be fine with it. Just as I said, don't have a bunch of rowdy people around it - this will freak out the snake and highly increase the chance of someone getting bit.