"Print 'em all game" for Turing machines
If you use a Gray code then you can get $O(2^n)$. The Gray code described in the Wikipedia article modifies at time $t$ the position $p_t$ which is the index of the right-most 1 bit in $t$. The resulting position sequence is
$$ 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, \ldots $$
You are interested in $\sum_t |p_{t+1}-p_t|$:
$$ 1,1,2,2,1,1,3,3,1,1,2,2,1,1,4,4,\ldots. $$
We can see that half the time this is $1$, a quarter of the time it's $2$, one eighth of the time it's $3$, and so on. The total average value is roughly
$$ \sum_{n = 1}^\infty \frac{n}{2^n} = 2. $$
So the head moves roughly $2^{n+1}$ times compared to your lower bound of roughly $2^n$.