How to stretch ON time of a pulse train when keeping the periods unchanged?
You want something called a one shot.  Basically, you ignore everything except rising edges of your input signal.  You copy the rising edge to the output, but make up your own falling edge.

A one shot is a timing component that does exactly that.  You can set one up so that when a rising edge comes along, it starts a timed pulse.  Since your pulses vary from 1 to 2.5 ms, 500 &micro;s is the optimal time for guaranteeing the longest minimum level time.

Without prediction or delay, you can't make a square wave output.