hi
First of all, the answer is to use the evictor pattern: a queue which keep alive only ten of the 1000 possible servant.
I did it, with c++, using the stl, if you are using java you could use hash, vector etc; it's not so difficult but vary depending on the kind of servant manager you use.
If i haven't misunderstood, you call always the same CORBA object,if so maybe you should use a default servant, the incarnation of multiple CORBA object is achieved with a unique servant, but it must not have any state.
For servant locators or activators: when the first servant is created must be registered in an hash table (size of 10 elements), once the table is full you choose the element to be deleted (less recently used, less frequently used, first in first out, etc depending on your application necessity),then you will create the next servant and will update the table.
Anyway for more practical example you can serch the web for "evictor pattern", or borrow "Advanced CORBA programming with C++" henning,vinosky in a library, it's very clear
Hope it helped
Vitellozzo