Basically, you'd program the PIC to:
1. Wait for a the beginning of a pulse (assuming the pulse is "high" and between pulses is "low", wait for the input pin to read as a 1).
2. Start your output pulse by setting your output pin to 1.
3. Start (or reset) a timer, and then wait for the end of the input pulse (for it to return to 0).
4. When the input pulse ends, read the timer value. Calculate the timer value where you want your new, wider pulse to end based on the percentage you specified.
5. Wait for the timer to reach your new calculated pulse width value.
6. End your output pulse by setting your output pin to 0.
7. Start over at 1.
As for "fast tracking"? Check out Nigel's PIC tutorials in the link in his signature, 2 posts above this one.
P.S. If you want to shorten the pulse width, you'll either need to determine the desired narrower pulse width in advance of receiving the pulse, or to narrow it by a percentage you'd have to measure the input pulse to get its width before outputting your pulse, meaning your output pulse would be delayed by the width of the input pulse.