Kids need all of the above to grow, sleep, good diet, and plenty of exercise. I would be concerned that pushing too hard with weight training may cause some issues, but that is something best discussed with his doctor.
I don't know that it works for his age, but there are height calculators on the internet that can give you a guess at his adult height. We did them for our kids and the one for my 4 year old matched up with the docs guess. My nearly 2 year old hasn't had an official guess from the doc, but I am guessing his will be pretty close. This one said that heridity only accounts for a small percentage. My husband and I are both 5' 8" and the predicted height for our 4 year old is between 5'10" and 6 foot. our nearly 2 year old based on his height now (the predictor we used starts at 2, he is 23 months) shows him at 6'2"-6'4". Funny huh? My husbands folks are average, dad is 5'10" and his mom is 5'4", yet his younger brother is 6'4".
Anyway, the one I used was on babycenter, but it only goes to age twelve. Maybe you could go back and see how tall he was then and try using it based on that. Here is the link: http://parentcenter.babycenter.com/calculators/heightpredictor/?s_evar2=height%20predictor&s_prop2=height%20predictor
Hi ,Height is a strange thing,My mother and father where both about 5'8".My brother is 6'2" and I myself am 6'5".My fathers side of the family were all under 6'ft.But my mothers brothers are all 6'3" to 6'5".Your son may grow till he is 19.I knew a couple of guys that grew 2 to 3 inches while they were in college.So look for him to grow for a few more years.Weight lifing wont hurt him.You might even get a doctor to give him a few testosterone shots for 3 or 4 months then repeat again in 1 year.A few wont hurt him and might make him grow a little more than he might without them.Make sure to only do it for 3 or 4 months ,then break for 1 year,this will kept his bones from locking in and will not stop his growing spurt.To much testosterone for to long can make him stop getting taller!Good luck.