There was a really nifty trick I saw with the PIC32 but I don't know if it will work with a dsPIC33. Microchip had a somewhat working-ish example but they have since dropped any mention of it including the link to download it. Anyhow, maybe this will give someone an idea on how to do it if/when someone does for the dsPIC.
The trick is the PIC32 IO pins are memory mapped and the DMA was capable of writing to any memory mapped location so:
1) set desired PORTA (or whatever) pins as outputs
2) load 16bit array with an array 10 indexes deep (start + 8 bits + stop). array[0].bit0 = start bit, array[1].bit0 = MSB, array[8].bit0 = LSB, array[9].bit0 = stop bit.
3) Set DMA start pointer to the array (RAM), length = 10, and "copy" it to the physical destination port address of PORTA
4) Set a general purpose timer to 115200 (or whatever) and have it trigger the DMA transfer at that interval effectively placing the 16 bits of the array onto the port in parallel. BAM, you have a parallel transfer at a given baud rate.
5) Configure IRQ for DMA transfer done.
If there are two DMA controllers, you have up to 32 output UARTs. It wouldn't be called a UART, more like UAT.
Inputs are possible but hard to get the start bit timing smooth.
Hope this helps someone!
-TomP