There are several key insights you need in order to understand how DFT allows you to shift an image.
First, Fourier's theorum: It's probably easier to look at the continuous (i.e., analog) case first. Imagine you have some function, call it g(t). For simplicity, let's say that g(t) is an analog audio recording, so it's a one-dimensional function, which is continuous, and represents the instantaneous pressure as a function of time.
Now, g(t) is one way we can represent our audio recording. Another is G(f). G(f) is the Fourier transform of g(t). So, G(f) == FT(g(t)). G(f) has all the same information as g(t), but it represents that information in the frequency domain instead of the time domain. There are some nit-picky details about Fourier Transforms, which I won't mention.
You can sort of think of G(f) as the "distribution of frequencies" contained in g(t). So, if g(t) is a sine-wave (i.e., a pure tone), then G(f) will be zero everywhere, except at the frequency of that tone. This is probably a good point to mention that G(f) is in general a complex function--that is to say that it returns complex numbers, which can be thought of having a real and imaginary component or a magnitude and phase.
One small digression here: Since g(t) is continuous (both in domain and range), G(f) is also continuous. So, how can G(f) be zero everywhere except for the tone frequency? Well, FT(sin(wt)) = $\delta(w)$. Where $\delta$ is the Dirac delta function.
Ok, so now we've got continuous FT's under our belt.
Here's the second insight: A Discrete Fourier Transform is to a Fourier Transform as a sampled signal is to an analog signal. In this case, the
"discrete" refers to quantization of the function's domain (time or frequency), not it's range. (The sampled digital signal you get from your sound card is quantized in both domain and range.)
The digital byte-stream you get from your sound card contains "samples" of the original continuous (analog) signal from the microphone. If we take the DFT of our sampled g(t), we still get a G(f). G(f), remember, is just a different way of representing the information contained in g(t). If we obeyed Nyquist's theorum, the sampled signal g(t) contains all the "intelligence" of the original continuous signal, so our discrete G(f) must contain all the information from our original continuous signal. Parenthetically, G(f) is still a complex function.
This is where the magic of sub-pixel shifting comes in, but in this case I'm going to write about shifting the audio signal in time by less than a sample, since it's the same thing.
Remember how G(f) is a complex function? It needs to be complex in order to represent frequencies that aren't zero at t=0. Remember, sin(0)=0, so sin(2*0)=0, etc. But what if we started recording a quarter of the way through a cycle of the tone? That's where the phase part of G(f) comes from. In this case, the phase would be 90 degrees or pi/2 radians, depending on your preference for representing a quarter of a cycle. So G(tone_frequency) = 0 + i or $e^{{i \pi}\over{2}}$.
That means we can shift our audio recording in time (by any amount we choose, including a fraction of a sample time) simply by modifying the phase of G(t). Actually, that statement is perhaps a bit too casual. For an un-quantized, sampled signal the phase can be adjusted arbitrarily (this is part of the reason I made the distinction between quantization of domain and range earlier). However, for a quantized sampled signal (our byte-stream of audio, for example) the quantization step size (i.e., number of bits) determines the resolution with which we can adjust the phase. When we Inverse Fourier Transform G(f) (or DIFT it, for this sampled signal), the new set of samples g'(t) = DIFT(G(F)) will all be shifted in time by the amount we pick.
Applying this to your pixels simply means using a 2-dimensional FT instead of the 1-dimensional FT discussed here.