I thought a bit about it, and I don't think it is a given that all probabilities in the race sum to 1.
You can use your predictors and just do binary classification to try and predict whether given horse is going to win (1) or not (0). Then you'll have probabilities for that result and if you want then you can group by race and calculate softmax probabilities so that they sum to 1. It's a simplification, of course, but it seems to me that it can be a good approximation of your domain.
In real life, whether horse wins or not of course depends on other horses, so you should find a way to encode information about other horses in the race. For example, similar thing is happening in football, hockey and any other sport. Probability of a given team to win on a given day depends on opposing team, so it seems very similar to your problem.
Does that make sense?