всё правильно в примере, вы добавьте управление высотой и блочность, например, в пример добавьте:
.text::first-letter {font-weight: bold;vertical-align: sub;
Первый вариант только если первую букву оборачивать в span, например, и его уже двигать.
Второй вариант скриптом находить абзацы и оборачивать тоже, например в span.
Конкретно это - результат работы простенького, но платного скрипта по созданию буквиц (названия не вспомню).
Суть в том, что первая буква оборачивается в спан и с нею уже производятся действия. Копай в эту сторону.