I have had to do this a lot. It sounds like my daughter is built similarly to your son – if I was going by the size chart she would wear a 2 with the length of a 7! I was given a bit of advice by Liesl a couple years ago, though, to only size down the width a couple sizes from the length, to preserve proportions. I find that this works for us.
That said, I did tend to lengthen the rise when I sewed her woven pants (as opposed to knit leggings, which are the only kind of pants I sew for her these days). I have done this with the Sailboat and the After-School patterns. I start by tracing the rise of the larger size, and then switching to the smaller pattern piece and tracing the rest of the waist and hip area using that pattern piece. It works fine. Hope that helps.