I want the cursor to stay in the same column whilst moving up and down on tabbed lines.
But instead the cursor goes to the beginning of the line if there's no text on that line.
How do I get rid of this cursor behavior?
You can try
quarter-plane-mode (available from GNU ELPA), but beware. Emacs's underlying engine is basically unable to do what you want; it can only place cursor where there is some text), so the package has to do funny things (e.g. it will add spaces as/when needed, IIRC) which will occasionally have side-effects that might surprise you.