Image Texture box mapping - offsetting vectors on opposite sides?
Geometry > Normal socket is the way.

If you separate the vector components with a Separate XYZ node you can use the desired axis as mask for combining whatever you like (colors, textures, even shaders).

Use use the desired axis as input for the Factor socket of a color mix node. Then plug whatever you want on each color input. In your case just use the same image texture node with different vector input for coordinates.

With a Vector Mapping you can transform it however you see fit independently.
I added an additional Vector Mapping node because the Normal output of the Geometry Node is in Worldspace, meaning if you moved or rotated the mesh it would always point to the same global side.



The image illustrates the same cube object viewed from different sides in two separate viewports.