Unless when you mean you make a new client you mean running a second instance of the
Java application.
If that is what you mean then you have a problem - variables, static or not, exist only in the scope of the local JVM. When you run the application a second time you get a new Virtual Machine, so the static variable counter gets re-initialized to 0.
You have to store the count in some location external to the JVM instance running. It helps that you are in a Client - Server scenario. When I have done things like this in the past (not using RMI though) I had the server tell the client which instance for that host as part of the registration process.
In my case, I had a handshake where the client connected to the server. The server received the client, checked the IP address for the client, and generated an ID. It then responded to the client with the ID, and to finish the handshake the client responded back to the server with the id.
Other means of doing the same thing might be to use a database, a file to store the current count of objects, or an external service (on the Client machine) listening on a socket that the client talks to to get the id.
I am not sure how RMI modifies these approaches...