You could use timer interrupt routines, generate interrupts at regular intervals and decrement a number of counter registers (one for each pin you want to stay high), when the particular counter reaches zero simply turn the pin off. To set the pin high, simply set it high with BCF and reset the counter for the time you require.
What exactly are you trying to do, they could well be an easier solution for your specific problem - particularly if the requirements are fixed (such as the width is always the same, and one is always the longest).
Something like this:
Pin1 high
Pin2 high
Delay time1
Pin1 low
Delay time2-time1
Pin2 low
You get the idea? - this isn't in any kind of code of course!.