There are faster hardware interfaces (ie SPI), but as has been pointed out your code needs to be able to keep up, and that gets difficult.
I've run a UART link up to 460K baud reliably, but that was with a PIC18 @ 64MHz

Here's how fast a byte gets transferred at different baud rates:
115.2K = 86us
230.4K = 43us
460.8K = 21us

If your ISR can't keep up with those rates then you'll loose bytes.
A UART is probably your best bet since it's double buffered in hardware, plus it's easy to use.