I am curious to hear what others have to offer on this question.
I am currently using my own modified version of d3d_func that allows me to set viewports:
d3d_setviewport x, y, w, h
Then, all drawing commands after that only affect that area, which you could set as your rectangle shape. If you "paste image" and the image spills out of the box, the extra is ignored. After you are done, you can use "d3d_resetviewport" to go back to normal. The scrolling can be done by adjusting how you paste the image.
That is how I would do it. I know you can probably do something similar with a camera but I haven't tinkered with it at all and can't help there.