You're right, you need to use one of the micro's timers (PIT or DMA) to give you the accuracy & speed you need without tying up the processor counting ticks at insane speeds.
I'm not very familiar with DMX (is it the stage lighting control protocol?) but if you're trying to run a communications protocol then I would look closely at whether one of the dedicated comms ports (UART, SPI, I2C) can do the job on its own, that will sort all the timings etc. out properly and you just have to put data in & out of it at the right time (it will interrupt you when it's ready). I'd be very surprised if you can't do it with a UART as most protocols are designed to be easily implemented, even if they're a bit obfuscated on occasion.
Failing that, a 3rd party comms chip may be a better way to go.
If you really must bit-bang it, then it's not always easy - we are bit-banging an obscure and quite rubbish FSK comms protocol using the PIT and GPT timers. Our PIT runs a very small loop at 12KHz looking for the correct conditions to trigger (it's also doing a couple of other high-res things). Then the GPT is set going to interrupt at the correct intervals - it's clocked very fast so is very accurate, but requires no overhead until it fires the next interrupt (in our case, exactly 50uS apart).
Beware of the PIT timer accuracy pitfall, if you search "PIT" on this forum you'll find a big thread about it.