For the bolting and running problem I would say try reverse psychology. If a open space you know and with plenty of safe running space, push him into a trot or canter and ask him to stop (nice and gentle) if he does not stop push him to go faster. Then ask again for a nice stop if you do not get a good stop when you ask (only ask once per try) Push him to go faster and faster, he will get tired and want to stop, but then it to late he has had his chance, push him to go a few more time, then ask for a nice stop, if you don't get what your asking for push him to go again. After doing this a few times you will have a horse who will stop as per your request
As for the head throwing, maybe try a different bit? Or bitless? You could also make sure you have the time to do the following.
Does he do this all the time on the trail or just when he is heading home or on his way out for a ride? The easy way to deal with that is just ask for a stop if he throws a fit turn him around and take a few steps going the opposite direction. He will soon figure out that throwing a fit does not get him what he want.
If he is doing the head throwing all the time for no reason you can find. I would try a not rough but very consistent approach. Ask for a stop and let him throw his head, but don't let him move his feet (or as best you can), keep him where you asked him to stop that means you might be doing a tight turn, backing up, going side ways.. BUT this is the important part! Only pull when you asking for the stop, then let loss, and then only pull again (dont say whao again, once is enough) when there body moves, and then let loss again once you getting the forward movement stopped. You will probly dance around like this for a half hour, but you have to follow through. He will learn that throwing his head might stop the pressure, but it comes back when he moves again... that behaviour will become pointless for him at that point.
Hope this helps...