I'm not trying to be argumentative and in fact I agree with you, my point is everyone is doing this especially in Maryland. Take a look at any Div 1 teams roster and look at the birthyear's of the freshman all of them are older than what would equal your son's age.

based on your son being a 1999/7th grader the equivalent for a collge Freshman would be 1993. See chart below:
1999/7th
1998/8th
1997/9th
1996/10th
1995/11th
1994/12th
1993/College freshman

Here is UNC Freshmans Birthyear directly from their website.

Jan/1992
Jan/1992
Feb/1992
Feb/1992
Mar/1992
Aug/1992
Sept/1992
Sept/1992
Oct/1992
Nov/1992
Mar/1993

They only have 1 1993 on the roster as a freshman!