Study Seb Coe's workouts. I followed Coe's workout plan and went from 2:03 to 1:58 between junior and senior year. Coe did a fair amount of base mileage in the off season which I simulated by running cross country. Beginning 6 months or so before your peak season, start the middle distance specific workouts. For me this translated to a start date that was a month after cross ended. Some basic highlights of my training included:
-Track season mileage at around 60 mpw, with most of it being high quality (i.e. not much easy, aerobic running)
-Weekly 8 to 9 mile tempo runs that were run fairly hard (at least they felt that way). I was a 16:30 5k guy and would routinely average between 6:00 and 6:15 per mile on these runs.
-Work on hill, core and weight work in the first 3 months of the season and taper off after, using basic core work, push-ups and pull ups to maintain strength as the competition season heats up.
-Interval sessions run 2x per week. Intervals never exceeded 1200 meters. Lot's of ladder workouts ranging between 200 and 1200. Lot's of hard 200's and 300's.
-Race a fair amount (4 to 5 times per month), but train through meets until the last month of the season
-Run workouts after meets. Might be hard 200's or 300's and strides, but it should be something.
-Focus on your speed by running hard 100 meter strides after interval workouts and run the open 400 and 200 in dual meets 2 or 3 times.
-In hindsight, we should have also done drills, but I ran before this was really popular.
To put things into context, you don't necessarily need to be super fast to break 2 min. You do, however, need to be able to routinely go through the first 200 meter and 400 meters of a 800 race in 27-28 and 56-57 without it feeling like you're pushing. My 200 and 400 PRs were only 25 flat and 54 flat and I still ran 1:58.