I do this workout:
10x100m on/off with flying start. On reps faster than 800m goal pace. Do not time the recoveries, take the offs just slow enough to continue hitting the target pace for the ons, and no slower. You should be hovering just below acid threshold, near to rigging at the end, and breathing/HR should never quite recover.
rest 5 to 10 minutes
4x200m on/off same deal, but slow to goal or current pace, not faster.
This more specifically targets O2max than traditional vo2max workouts, because vo2max is what can be sustained over 3000m. Working higher levels that you can't sustain for 3k is just as effective as lifting heavy or doing 400's to build mile speed.
Beside this, the aerobic system is not just the heart, lungs and blood, it's the type 1 muscles using the oxygen they deliver. If your type 1 muscles are adapted to running at 3k pace, guess what pace you'll finish your 800 at. Build 800-pace muscle fibers that can make more effective use of the oxygen supplied.
Vary the reps if necessary but don't do too many, as the point is to push your aerobic limit over the short term, not the long term. Do them faster if they're too easy, or shorten the recovery.
Do flying starts because there is never an aerobic contribution to the first 30m of a race. Target top speed, not acceleration.