intanto puoi risolvere via css settando width e overflow:auto per quel livello in cui mostri l' anteprima
se vuoi risolvere via javascript ti serve una regexp, per esempio, prima di stampare con innerHTML
contenuto=contenuto.replace(/(\S{20})/g,function($1){return $1+' '});
che forza uno spazio ogni 20 caratteri che non ne contengano
occhio che con innerHTML permetti di iniettare xhtml a tutti gli effetti,
che non e' auspicabile,
filtrerei immediatamente qualsiasi <tag> e, se richiesto, permetterei di formattare con bbcode (come nella textarea in cui sto rispondendo alla discussione)