Subdivide loop at custom position without stretching the texture
The loop cut operator has an option to correct UVs. Enable it in the redo panel, below the tool shelf or with F6:



You could also use the knife tool (K), with angle constrain (C) and cut through (Z):