Though using a microcontroller with two harware UART is highly recomended, you can solve your problem on software basis as well. Obvious for second UART.
There are three options (as usual):
1. get a 51 with second hardware Uart e.g. 80C517 (old but many peripherals)
2. use the bus-interface to connect an external Uart e.g. 16550, the external bus-interface is a big advance of the 51 compared to PICs or the small AVRs.
3. programm a software Uart at your 51. Uses some processor-time and a timer but maybe fit in your application.
a) Read Atmel Application Note ANM055 to get a second Async Interface on 80C51
b) Or use a 8051 with two serial ports. ( Dallas - MAXIM)
c) If you use an external UART, you will waste a lot of I/O pins.
d) Another option, but I don't test it yet: An Atmel 89S8252 has an SPI interface. You can connect an SPI UART there ( MAXIM - MAX 3110E ). It only needs 5 I/O pins and includes RS-232 transceivers.
Application note from Philips (AN423) is ready-to-go software driven serial communication routine for 83C752/1 (These derivatives do not have UART...).
But there is a"BUT" in this approach: sometimes you will have problems with synchronization (at higher baud rates), specially if bytes are sent one after another, so my advice is to work below 9600bps...