Usaría una tabla con
contenteditable y para identificar las palabras agregaría atributos
data (posición de letra y número de palabra) a las celdas
Código HTML:
Ver original<td data-palabra="5" data-pos="0">T
</td> <td data-palabra="5" data-pos="1">I
</td> <td data-palabra="5" data-pos="2">T
</td> (...)
<td data-palabra="5,1" data-pos="0,10">R
</td> <!-- parsear con js -->