My initial thought is that this can be done but will increase the DOM significantly, because you essentially need to wrap every individual letter with another element. Each wrapper element would also need to use inline styles to ensure that it overrides the styles already used on the page.
Imagine you have the following markup:
<p>This is a sample.</p>
You'd need to parse the DOM, and for each text node (nodeType 3), examine it one letter at a time and generate a replacement string. For example, you'd want the above to turn into something like this: