There are several things to note here:
If this is the very first operation on the server, or first one after a longer period of inactivity, the component needs to connect to the server and both the client and server go through series of startup tasks, which makes things longer. This can be overcome too, but for the rest of the discussion I will assume that this is not the first access to the server. Similarly, a first access to a particular item inside the server takes longer than subsequent accesses. I can elaborate on this in more detail if needed.
The OPC interfaces, and the component are designed for higher throughput if more items are processed together. That is, if you have called ReadMultipleItems with e.g. 20 items, the timing will most likely be close to your original value, and not 20 times higher. Wherever possible, the application code should be written so that multiple items are processed at the same time, using methods that have the word "Multiple" in their name. Also, subscriptions are much preferred to repetitive Reads, though the component actually tries to make up for the difference by internally subscribing to the items that you attempt to read.
If your application cannot be rewritten to process multiple items at a time, you have the option of tweaking certain parameters in the component, to achieve faster response to ReadItem etc. The main parameter that influences the time that you observe is TopicProcessingIntervalTimeout, and you can set it either form the code, or change its default using the EasyOPC Options Utility. For start, decrease it to e.g. 20 milliseconds, and measure again. You may also read a related thread at
www.opclabs.com/Support/Online... (it is for .NET but the principles are the same).