Excel has the power you need for something like this, at least at a crude level. I've created some nice draft tracking spreadsheets in the past and I know there are some available. None do what you're asking for, but IMO it only takes a little adjustment to do so.
As the draft goes, you check off which players are on your team, and which players have been drafted. I do this by putting a 1 for my team in the draft column, and a specific number for each other team. On another tab, using index matches, I auto populate my team along with their projections. The overall team stats are calculated at the bottom, highlighting if I'm above or below my targets cats and by how much. I also populate each team and have an overall league standings tab that I check as the draft goes on. So I will see how I'm stacking up against other teams during the draft.
I used to have a tab with the top projected remaining players at each position, and highlighting players that are above my target cats. You could have a tab with the list of players above each cat. For example if you want to average 20 Hrs, but you're only at 17, you could quickly see the list of players that are above that rate at each position. Probably best to use filters rather than another tab like I did, but hey we're always learning.
Of course if you draft one of those 20+ HR players, your other stats may be negatively influenced, e.g. SB rate or avg. What is needed is a calculation for all remaining players that would tell you which remaining player would add the most to your overall team rating. So you could have a list of the top players to pick. This last piece is the most complex, but really not that far beyond what I've already done with spreadsheets. If you can calculate overall ranks you can calculate next best available players.
However this would only show who would influence your cats the best, but may not really be the best player to take, especially early. It may be better to take that 30HR guy in the 8th that would lower your avg and Sb rate, and then make up for it later with other players. It would probably be more useful in later rounds to fill out the last starting roster slots, or tell you which pitchers can get you the K rate you need.
So IMO it is doable, at least at a crude level for next best available players. Since it's based on projections that calculation would be only 70% accurate at best, and would not handle the chaos of predicting beyond the next move. Maybe the MIT guys could do a better job.
This would be a bit of work to setup, and I don't use this level of complexity anymore. I found that during drafts just checking off the drafted players was a lot of work. Not so much at the start, but by the 5th or 6th round, someone will draft a player that you have ranked for the 14th round and you have to spend time hunting him down to enter the draft result. By the time you do that another player or two have been taken, and you have to hunt those guys down. Drafts can move along fast. I found that to be a lot of work, and I'd rather enjoy the draft and be able to evaluate what I want to do instead of doing data entry.