Не знаю, как это будет выглядеть в реале, но теоретически это можно сделать так:
если делать это на WPF, то можно после каждого пробела создавать по ячейке Grid'а, а в каждой ячейке поместить Label? в котором будет храниться слово, далее через событие MouseMove уже можно определять, какой Label находится под курсором