Edit(2/12/19): If the height and width of the blocks are not big enough then the text would just overflow into space that can't be seen. This overflow could then be scrolled to see or automatically scroll as more text is added. The overflow would also happen in the x-axis or y-axis but may be too many inputs by then for this to be simple. Scratch needs a better dedicated text system, which could be implemented through extensions if thought too advance for new scratches, to help limit the slow and restrictive process with the current ways to display text dynamically.
tell  at x() y() width() height() ::looks(Instead of tell it could instead say textbox)
tell  for (2) secs at x() y() width() height() ::looks
set text style [sans-serif v] :: pen
set text size (12) pt :: pen
set text color [#ABCDEF] :: pen
set text alignment [left v] :: pen
draw text [hello world] at x: () y: () :: pen
These blocks would work within the pen extension a new extension which could be called the text extension. The alignment block is still a ambiguous though with how it would function. @imfh idea is to keep the rendering on an svg layer so no pixelation would occur with the text which would be a must if projects are to run across multiple devices and screens.