EDITED: FOUND A BETTER SOLUTION!
Separate two group of horses: The M group and the E group. The E (for extreme) group are the fastest, the slowest and the second-slowest horses. The M (for middle) group are the remaining 5 horses.
What can be used to separate them?
M horses might show up as 2nd or 3rd places of some race. E horses never do that.
Find out who in the E group is the fastest horse.
How to perform step A?
Take a race which gives you two horses as 2nd and 3rd (part of the M group). Take a second one without those two and you'll get other two horses as 2nd and 3rd (also in the M group). Now you'll need to find the 5th horse in the M group.
Take a third race with the four remaining horses and add up the 2nd one from the first race. The 2nd and 3rd horses also belong to the M group. It is impossible that the 2nd from the first race is not between them. Since there was only one horse known to be in the M group, this will give you the 5th member of the group. The other three horses are the E group (let's arbitrarily call them A, B and C).
How to perform step B?
Race any four members of the M group with the horse A from the E group (fourth race). Call J the 2nd place and K the 3rd.
Race the same four members of the M group with the horse B from the E group (fifth and last race).
If in the fifth race, K ends up in 2nd and J doesn't show up (hence he was 1st in the race), this means that taking out A helped the M horses. This implies that A won the forth race and is the fastest horse.
If in the fifth race, J ends up in 3rd and K doesn't show up (should be 4th), this means that adding up B worsened the situation for the M horses. This implies that B won the fifth race. Hence, B is the fastest horse.
If in the fifth race, the 2nd and 3rd places are also J and K just as the forth race, this means that neither A nor B can be the fastest horse, since swapping them didn't change anything to the M horses. So, in this case, only C can be the fastest horse.
Is it possible to determine the positions of every horse?
Yes, but you would need a few additional races. Basically what you would need is to order the M horses.
However, there is no way to tell the 7th and 8th apart (both in the E group). They are effectivelly indistinguishible. Even if/when you know exactly the order of all the other 6 horses, there is no way to produce a race that give any information about their ordering.
Is that the minimum number of races?
I strongly conjecture that yes. There should be no way to do less than 5 races.
Notice that 4 is a lower bound, because we can get answers only about two horses per race. With 3 races, we can get information of no more than 6 horses, and then there would be at least two undistinguishable horses that could be equally probably be in the 1st place. This means that a 4th race is required.
However, instead of 6, I think that this 3 races actually only gives information of 5 horses, since at least one of them would repeat (but I'm unsure, since this all is based in getting indirect information from the results). This possibly means that a 4th race will give information of only 7 horses and then a fifth race would be required.