Are you polling the COM port or are you using callback functions for managing the serial communication?
Should your messages have a fixed termination character, you could install a callback for the serial port to be called when this character is received. This could speed up the stuff a lot. If for example your messages terminates always with an ampersand, you could use this line after opening the com:
err = InstallComCallback (com, LWRS_RXFLAG, 0, 38, comgen, 0);
The callback "comgen" will be called every time the ampersand (charcater 38) is present in the input queue.
The same can be obtaine if your messages are of foxed lenght: use the LWRS_RECEIVE flag for the event mask parameter and put the message lenght in notifyCount field.
This method can be little more difficult in case the communication is very fast since the function is triggered only after the queue lenght falls below the stated number of bytes: if your program is not fast enough to empty the input queue before new messages are received you can be in a great trouble (the callback in no more triggered and at last you'll catch an overflow error when the queue is full).