There are a couple of good things you could do. First, I would suggest doing intervals. That could be run X-amount of time and then rest Y-amount of time, or that could be running a certain distance and you start every x-time. You would want to make these short-to-medium range distances or times that you do fast, with little break. You don't want to sprint a 100 meter interval, and then have over a minute braek between each one. Make your interval rest match up with your running time (may help to do some research on that too). This would help building up speed and strength.
Next, I would suggest doing some short, fast runs where you run a certain distance and just push yourself. 1-3 miles would be good for your goal. This will help build stamina, and if you're pushing yourself, it will also help with strength as well. Some say that the best way to train for an event is to run it, so getting in hard 2 mile runs would help.
I would also suggest doing the occassional hill for extra strength. Pick a nice long hill or a very steap one, and run it. You can set a certain amount of interval time for that, where you have to run up the hill, jog back to the bottom, and then start again at the end of the time period. Or, you can run up, walk back down, and then immediately or near immediately turn back around and push it back up. However, you don't want to do hills often. They will help make you stronger, but it will also add a ton of mass to your legs, which you will have to work just that much harder to push towards your time goal. You want powerful, but not big.
Finally, I would suggest, LSD (Long Slow Distance) once a week, preferably on the weekend. Pick a distance longer than your target distance (4-10miles for you), and just go fow a slow jog. This will help build stamina and it will give your body a nice easy way to work itself out at the end of a tough week. A schedule to combine these would be:
Monday:Interval. Beat the crap out of yourself.
Tuesday: Short & fast. Should still be a bit tired, don't push yourself too far.
Wednesday: Interval. Beat the crap out of yourself again.
Thursday: More sort and fast. See above reasoning.
Friday: Short and slow
Saturday: LSD
Sunday: Off or short and slow
I would say do the hills every other Wednesday.
I can't really say how long it will take you. It depends on your age (obviously, the younger guys will improve in no time flat), and it will depend on how you do your workouts. There are lots of interval options, and I can't really say what works best. Some will have you going for a longer cumulative time, some will have you do more or less rest, etc. It just depends on what you feel best doing. Just stay patient and dedicated, and you'll probably get there.