I have one question - I know the ethernet shield can have up to four simultaneous connections; is there a way to "differentiate" between these sessions?
No. The communication is stateless. A connection is opened between the client and server. The client sends a request. The server prepares a response, sends the data back, and closes the connection. The client reads the reply and closes the connection.
If a new connection occurs, the server has no idea that the client is the same as one that it has seen before.
If you intend to violate that stateless paradigm, you must send some data each time that is unique to the client, so the server can know that the client is one that is has seen before.
That is how shopping carts, etc. work. The client identifies itself to the server every time you (the client) puts an item in a shopping cart (on the server).
I ask because I wanted to implement a system where the user can input a username, and the arduino server will save all the commands into the specified user's log.
It is really the client, then, that knows the user's name. It is easy enough to make the client send that info in each communique.