Changing the projection reference point in Open GL By default, the eye an the projection reference point PRP are in (0,0,0). I can change the eye position with gluLookAt(), but how can I change the PRP (i.e., the  convergence position for a set of parallel lines) for a perspective projection in OpenGL?
Eye position, projection reference point PRP, camera center, or projection center are all just different words for the same thing. 

gluLookAt() applied to the GL_MODELVIEW matrix works for both, parallel and perspective projection.

You can choose between parallel and perspective projection by setting up the GL_PROJECTION matrix. For perspective projection this can be done using the gluPerspective() function.

Creating a perspective projection matrix in OpenGL

Edit: (after revised question)

If the PRP is not at the eye position, you can not use gluPerspective(). Instead you have to create your own GL_PROJECTION matrix. Following the formula that you have now provided, this results in the 4 x 4 matrix:

$$\mathtt{A} =\begin{bmatrix} z_c-z_{pp} &amp; 0 &amp; -x_c &amp;  x_c \cdot z_{pp}\\ 0  &amp; z_c-z_{pp}  &amp; -y_c &amp; y_c \cdot z_{pp} \\ 0 &amp; 0 &amp; \frac{\mathrm{far}+\mathrm{near}}{\mathrm{near}-\mathrm{far}} &amp; \frac{2 \cdot \mathrm{far} \cdot \mathrm{near}}{\mathrm{near}-\mathrm{far}} \\ 0 &amp; 0 &amp; -1 &amp; z_c \end{bmatrix}
$$

I have done a quick OpenGL/WebGL rendering test with the GSN Composer. Follow the link and move the mouse over the render output to change $x_c$ and $y_c$ of the projection reference point $(x_c, y_c, z_c)$:

Example: ProjectionReferencePoint | GSN Composer