Using @cegaton's excellent idea above, I was able to generate the noise texture and use drivers as input for the offset of the texture:
The result:
This is added at @cegaton's request to detail the driver creation for the random value generator (in the edit above) in case others have need of this.
Essentially, the texture that cegaton created above is random in nature so it's tile-able... meaning there are no detectable seams. Because of this, you can offset the position randomly with each frame and it will appear to be random digital noise or film grain. The texture will automatically wrap the offset.
This requires a simple driver to be added to the offset values. Ensure the Scripted Expression option is selected in the Drivers menu and multiply an integer by noise.random(). I used 100 as the multiplier in the X direction. You can also offset it in the Y direction but, going on the assumption that the texture is random, it's theoretically unnecessary.