Steve:
I always used the same technic what Matej before, only variation could be embed into Morph first as in:

BigWindow
“ You wish really big complex scrolling Morphs ? “
| fondoA t aWindow m p s |
fondoA := Morph new.
    fondoA extent: 10000 @ 10000.
    fondoA color: Color paleYellow.
    t := TwoWayScrollPane new.
    t scroller addMorph: fondoA.
    aWindow := (SystemWindow labelled: 'Squeak - Mapa de Clases')
                model: nil.
    aWindow
        bounds: (fondoA position - (0 @ aWindow labelHeight + aWindow borderWidth) corner: fondoA bottomRight + aWindow borderWidth).
    aWindow
        addMorph: t
        frame: (0 @ 0 extent: 1 @ 1).
    aWindow color: Color paleOrange.
    aWindow openCenteredInWorld.
p:= 0@0.

    99
        timesRepeat: [m := Morph new.
            m extent: 100 @ 100.
            m position: p.
            p := p + (100 @ 100) asPoint.
            s := StringMorph new.
            s contents: p asString.
            m addMorphCentered: s.
            fondoA addMorph: m].
^fondoA.

But searching morphic building examples in image , I think you should look at:
NebraskaServerMorph

Hope this help.

Edgar