For your second question about bringing closer the two central terms by making the image term to use less space, a suggestion is to introduce that term in a \hbox{} of fixed width (say for example 2em).
To prevent an overfull box and to center the term inside that narrow box (so that it protrudes the same amount in both sides) the box can contain two \hss at its ends.
This solution is syntactically awkward, because it requires to enter again in math mode inside the \hbox but produces the desired result.
\documentclass{article} \usepackage{xypic,amsmath} \DeclareMathOperator{\coker}{coker} \DeclareMathOperator{\im}{im} \newcommand{\subU}[1]{\left.#1\right|_U} \begin{document} \[ \xymatrix@C=7pt { \subU{\ker\Theta_M^j} \ar@{^(->}[rr] && \subU{\widetilde M} \ar[rr]^-{\subU{\Theta_M^j}} \ar@{->>}[rd] && \subU{\widetilde M(jp^{r-1})} \ar@{->>}[rr] && \subU{\coker\Theta_M^j(jp^{r-1})} \\ &&& \hbox to 3em{\hss$\displaystyle\subU{\im\Theta_M^j(jp^{r-1})}$\hss} \ar@{^(->}[ru] } \] \end{document}

About your first question (to center the imag term in the page) the solution would be more difficult. I would switch to tikz for total freedom.
Update
Here is an idea to get the im term horizontally centered, using tikz. The idea is to define the bounding box of the tikzpicture centered around that node, and passing through the coker term. The following figure, which draws a red rectangle around the intended bounding box would make this clear (I also added a border around each node to better see its placement, and a horizontal line below which shows the text width, to appreciate the centering). I did not complete the figure with arrows:

This figure was generated with the following code (note how the right border of the bounding box was computed simply as the symmetrical of the left border, using the negative of its x, since I placed the im node at (0,0)):
\documentclass{article} \usepackage{tikz} \usepackage{amsmath} \usetikzlibrary{calc,positioning} \DeclareMathOperator{\coker}{coker} \DeclareMathOperator{\im}{im} \newcommand{\subU}[1]{$\left.#1\right|_U$} \begin{document} \begin{center} \begin{tikzpicture}[node distance=8mm, every node/.style={draw}] \node (im) at (0,0) {\subU{\im\Theta_M^j(jp^{r-1})}}; \node[above left=of im.center] (M) {\subU{\widetilde M}}; \node[above right=of im.center] (Mj) {\subU{\widetilde M(jp^{r-1})}}; \node[left=of M] (ker) {\subU{\ker\Theta_M^j}}; \draw[red, use as bounding box] let \p1 = (ker.north west) in (ker.west|-im.south) rectangle (-\x1,\y1); \node[right=of Mj] (coker) {\subU{\coker\Theta_M^j(jp^{r-1})}}; \end{tikzpicture} \end{center} \noindent\hrulefill\par \end{document}
\cokerand\imshould look like; if I got it wrong, please apply the necessary corrections.