For you npcs, you definitely need to use instancing, which will reduce your draw calls to... 11. 1 for the npc and 10 for the number of accessories you have to draw. (sorting them manually, but sorting 10000 entities is not so slow)
As said before the number of rendertargets is principally limited by the memory available.
And the more you have the more they will eat the bandwidth (send A, then send B, then C etc slows down the rendering) and their size the fillrate.
But you have virtually no limit on their number.
Multirendertarget can also help, filling up to 8 rendertargets at a time. For ex one RT for the background, 1 for npcs, 1 for trees and all things with alphatest, 1 for projectiles and particles.
All the 'depth/layer' sorting done manually on the cpu or using spritebatch
That's what i have always used till now, with adjustments of course to match the needs of the game. This may not be the best method, but it runs really fast. (about 100000 models in one draw call which could be even bigger with sprites only as no face culling occurs, and less than 4ms to sort with multithreading them before drawing)