I don't know why more tech companies don't do apprenticeships straight out of highschool. You can pay a high school student with some programming experience a fraction of the salary of a college graduate and it probably doesn't take that much longer to get them productive and they won't be saddled with student loan debt.
Perhaps one reason is that job-hopping is very common in the tech industry. I wouldn't expect many apprentices to hang around long enough for there to be a payoff to the employer.
That said, my org supports up to 4 concurrent interns (typically we have 2-3 at any given point), and they could work for 4 months to 2+ years if they want, 15-40 hours/week -- adjustable for summers, etc... But they need to be at a stage where code review is going over application of theory, not telling them about when to use functions.
We lose a lot of interns after 3-5 months, but if they came in knowing the basics, we usually get something out of it (though the cost-benefit is usually negative). We want to support internships, though, so we keep doing them.