You could, but it would be hard to get the 20fps you want.
For an initial test you could try just sending an array as json and see how it performs. Since it's all text the size of the data could vary a lot. Sending only the pixels that changed would be less data to send up to a point. Since you'd need to send color and position, you could actually need to send more data.
Getting the colors into the array is the next slow bit. Grabbing pixels is kind of slow, and the only plugin that does it somewhat is the canvas plugin. You'll want to do this in straight javascript for an acceptable speed. Same with arrays. Even looping over them in javascript is much faster than with events.
Compression is possible, but with that amount of data you'll need to use javascript instead of events.
A better solution would be to leverage html5 video streaming, but still javascript would be needed.
But you could go a simpler route, like just sending the player's input so both sides can recreate the same image.