Module that adds &nbsp after one letter words
Traditional Drupal way is to use Text Filters. Here you have introduction text - it's for Drupal 6, but nothing important changed since then. Examples for Developers contains example filter. Use regex replace or other method from stackoverflow to make actual replacement: 

preg_replace('/(?&lt;=\b[a-z]) /i', '&amp;nbsp;', $s);


All the rest you can copy-paste from Examples.