I ran 3:45.8 this past year with p.r.'s of 1:54 low (SPLIT, so maybe even slower open), 8:27 3k, and 15:01 5k (although that was from junior year, so I probably could have gone a little faster).
My yearly progression was as follows:
4:18 grade 11 split 1:58 low for 800
4:18 grade 12, split 1:55 high for 800 (knee and sinus problems)
3:59 1500 frosh year (femoral stress fracture in the fall)
4:01 1500 soph year (consistent year of training, but probably focused on speed > strength too much)
3:51 1500 junior year, split 1:54 high for 800
3:45 1500 senior year, split 1:54 low for 800
I would agree that you probably need at least 1:51-2 open 800 speed to break 4:00 unless you have otherworldly strength. This is especially because you already appear to have better strength than I had when I ran 3:45 (I was never in 8:20 shape), and so there might be less room for improvement there.
However, I still think you should definitely be able to get down to the 3:45 range even if your speed doesn't improve too much. Some things that worked for me...
1) Getting a LOT stronger (I went from running 27:30 for 8k my sophomore year to 25:01 senior year). There really was nothing radical here - I just upped my mileage gradually where I was running some weeks in the 90s for cross senior year, and 70's-80's in track, and keeping my mileage relatively high most of the track season.
2) Combined with number 1, I held my mileage pretty high during indoor still, probably to the detriment of my indoor season. However, I think if you're going after a big p.r. goal like this, you need a long build-up to take a few solid stabs at it, as opposed to trying to peak multiple times a year.
3) Speed endurance: While my 400/800 speed really didn't improve much despite a lot of speed development and plyometrics (although in fairness I only ran it once senior year), I became a lot more efficient running at or near race pace.
Even to run 3:45, you need to be able to run 60's like it's your job, as well as feel comfortable running several seconds / 400 faster than that in practice.
I knew I was ready to run 3:45 when I ran the following workout:
800 (1:58), 800 jog, 800 (1:57), 800 jog, 400 (58), 400 jog, 400 (56), 400 jog, 400 (57), 400 jog, 4x300 in 43,42,43,42 w/ 100 walk rest.
4) Staying healthy for ~1-2 years is obviously the most important thing. Doing a lot of extra push-ups / core, foam-rolling like crazy, and ice-bathing after workouts really helped me in this regard.
2)