I have an $m \times n \times n$ array `a` I want `b[[i,j,k]]:=a[[Max[1,i-j],j,k]]` but even for a $5\times 50 \times 50$ array it takes me ~20s to compute:
data = RandomReal[{0, 1}, {5, 50, 50}];
Flatten[MapIndexed[(data[[Max[1, #1 - c*#2], #2, #3]] &) @@ #2 &,
data, {3}], {1}]