As I understand it your needle is in a camera separate from your main camera, and therefore by default it’s not affected by your main camera at all because it’s completely separate.
What you want to do is in the Update() function of the second camera with the needle, orbit the camera around the needle by the transform.rotation of the main camera. If you don’t understand what I mean I can probably whip something up really quick to show you.
If you wanted to do this for North instead of gravity you’d just set the transform.forward of the needle to the direction you want to be North. For example
transform.forward = new Vector3(1,0,0);
would point the needle in the positive x direction if you wanted that to be North.