Via OSL you have access to a 3D position and orientation vector, inside the shader. You can map a deer 5 meters inside the shader and camera face the sprite.
You would want to create a step sequence that takes the camera angle in adequate ranges and return an int value that triggers the motion, so alignment only occurs when the angle goes over or under a specific float value.
So you convert the camera angles max min max to create stops in both ends. Lets say the effect should occur between 0 and 90 degrees. from left to right and you break that up into the amount of steps you want. Giving option to move a bit without constantly realign the deer.
You would source the physical scene cameras world space data into the OSL map as vector inputs or floats, and if you want to control camera functions inside the shader as well, you can make UI for that too, and link that up as well.
Create a unit worldspace in the shader, integrate.
Coding skills needed for 1 shader.
For giant tree of core nodes and custom OSL node to do easy tricks, possible, but not as elegant.
There's a few examples already available of how others are approaching this:
https://forum.shaders.xyz/d/11317-challenge-09-lenticular-card/19
I missed the concept entirely I can see that now, I was entirely thinking about making a 3d world inside the shader ( which is possible, but not needed for this effect )