Yes, you can do what you are asking, but it isn't clear to me that it is the correct computation.
First, to answer your question. You can use the ROW and COL functions to find the subscript of the elements in the upper-triangular portion.... Set those elements to a missing value, then use the MEDIAN function to get the median of each column:
proc iml;
R = {1 .56 .44 .09,
.56 1 .32 .88,
.44 .32 1 .77,
.09 .88 .77 1};
R0 = R; /* save a copy in case we need it */
UpperIdx = loc(row(R) < col(R));
R[UpperIdx] = .;
print R;
medLower = median(R);
print medLower;
However, I don't think this is right. You are trying to find the median value of the correlation between the i_th variable and the other variables. So it seems like you would want all of the correlation coefficients except the diagonal. For example, the correlations with the third variable are 0.44, 0.32, and 0.88. It seems like those are the values you would want to use, not just 0.88.
If you want to consider this alternative, you can set the diagonal element of the matrix to a missing value and compute the median of the remaining elements in each column:
R = R0;
/* https://blogs.sas.com/content/iml/2013/10/21/assign-the-diagonal-elements-of-a-matrix.html */
diagIdx = loc(row(R) = col(R));
R[diagIdx] = .;
print R;
med = median(R);
print med;