Rotate + edge slide... is it possible?

Is it possible to “rotate” an edge loop along its existing path?

ie: take a model of a glass half-filled with water. Resting on the table, the face of the water is parallel to the base of the glass and intersects perpendicularly with its sides. If the glass is tilted, the edge loop that makes up the water/glass intersection slides along the perpendicular lines that make up the sides of the glass.

Obviously, I can rotate the loop to keep it parallel to the ground, but that preserves its original shape, which distorts the inside of the glass. Can anyone give me a hint how to go about this?

Shrinkwrap modifier.