Hmmm Assuming you are using all 16 channels per port that is a total of 160 layers of polyphonic music. Is that not enough for you.?
I have got a midi interface with 8 ports and 8 synths connected doing only one sound at a time each and it sounds pretty big to me. Enormous in fact. So I have 8 hardware synths blazing before I even turn on the first virtual instrument!
How much music can an 8 piece ensemble play. An amazing amount and it can sound pretty complex in the process. That is how I think of it.
Plus consider the fact you really should turn all external midi performances into audio before you do a final mix anyway. You don't need 10 midi ports to do that, in fact one midi port, one channel at a time being transferred over to audio is all you really need. That way you can fine tune each midi performance timing wise against the click or grid in order to get an even more perfect result.
In the end just before a mix there should not be any or many synths still playing live. Although I tend to do it myself a bit but I still end up converting everything to audio in the end. It is the central place where everything comes together for a final mix.
If you are going to investigate multiple midi ports as well you really need to research the midi interfaces that use either AMT (Active Midi Transmission) such as Emagic Unitor 8 or LTB (linear Time Base) in the case of the Steinberg Midex 8. These processes send the midi notes from the computer to the interface early and then the interface is smart enough to let the notes out at precisely the right time. eg sending a midi note ON to all 8 output ports at exactly the same time. (not sequentially which is what will happen normally)
So there are other fish to fry than the 10 midi port limit imposed by windows. The real issues are getting the best performance and timing you can even from 8 or a lesser number of ports to all your external synths so they sound great and tight.
Lately I have found a real good thing to do is to test the overall latency from your midi track right through to the instrument and how long it takes to make its sound on that part and channel. You need to do it for every patch too not just the synth in general. Patches may vary in their latency due to dead air being before the start of the sound. ie not tight enough patch editing of raw materials. This also applies to faster sounds much more eg transient edges at the start.
It is good to create some notes that are quantized to be right on the beat. Generate some sounds using the patch you intend to use for that synth and channel. Record some audio and zoom in to see what the timing distance is like from the midi note to the start of the sound. Advance the midi track timing wise to compensate. Do another test to confirm. If a sound takes time to rise, even quickly the sound may not appear to be heard until after the start of the sound (eg at the top of the rise) so you may have to advance those types of sounds further back even earlier etc...
This is all way more important than port limitations. For me anyway.