I've been looking into this recently.

What i've found is that the trunks are used based on the number of licensed trunks and the trunk group config for both outgoing and Incomming.

1 thing to try is in the indial table set the max number of calls for each did number, this should make the system only accept that number of calls (the call wait option may help here too).

Failing this unless you can split the did's to different sip server configuration you're out of luck.

Inbound calls start from the highest number trunk and go down to the lowest.