I did not try the SPRenderTexture method because it sounds too expensive, both cpu and memory wise.
I implemented a scrollRect property that works similar to that in Flash. I decided to subclass SPSprite instead of adding the feature to the SPDisplayObjectContainer class directly:
http://dl.dropbox.com/u/13203640/SPScrollSprite.zip
Usage:
SPScrollSprite * canvas = [SPScrollSprite sprite];
[self addChild:canvas];
canvas.scrollRect = [SPRectangle rectangleWithX:0 y:0 width:150 height:200];
/// add child objects to the container as usual
The SPScrollSprite is the same as SPSprite if its scrollRect property is nil. Otherwise, its rendered area is clipped to the indicated SPRectangle.
The class implements simple touch scrolling, which can be disabled by setting instance.scrollEnabled = NO (if you want to move manually by setting scrollRect.x and scrollRect.y, or to add your own listener and implement alternative scrolling logic such as flicking or with easing).