How about separating the classes, from the git go, on the basis of academic ability, as demonstrated.
We had 14 sections of eighth grade, with 8-1 scoring highest on standardized tests and 8-14 the lowest. Those classes could move at a pace commensurate with their abilities, without leaving classmates behind, but those who excelled were also not held back.