Hi Paul,
this might be true only up to some permutation of indices, but might work as a general idea. Suppose you have a 9 3D-images:
Table[Image3D[RandomReal[1, {3, 3, 3}]], 9]
or better just the raw data.
We now use Partition to get it into a 3 by 3 array, and then flatten appropriately (I hope, please check whether the levels in Flatten are correct):
Image3D[Transpose[Flatten[#, 1] & /@ Transpose[Flatten[#, 1] & /@ Partition[Table[RandomReal[1, {3, 3, 3}], 9], 3]]]]
Cheers,
Marco