If that function does not return -1, then it is getting a character at least every 100ms. The server, if the programmer is good, will return that page in chunks. It will return the header almost immediately, then send packets sporadically as it reads or writes to the database. Then another big chunk when it sends the footer.
That is the way database servers work!
edit: Your best bet is to try to service the server clients (or do your critical stuff) while waiting for the Xively server to respond to you. You should be able to do that. You are using separate sockets for those.
// use this client (socket) to contact Xively
EthernetClient client = connect(server,port);
// use this client (socket) for the server
EthernetClient srvclient = server.available();
//send 'em a response
The Xively server will not timeout the connection if you do not read the packets immediately. It will also wait for a second or two. It knows your device may be busy.