<?php
 
error_reporting(-1);
mb_internal_encoding('utf-8');
 
$text = 
"Дым табачный воздух выел.
Комната — угар и треш
глава в крученыховском аде.
Вспомни —
за этим окном
впервые шатали вакабу
руки твои, исступлённый, гладил.
Сегодня сидишь вот,
сердце в железе.
День ещё — тлеет покрышкой майдана
выгонишь,
может быть, изругав.
В мутной передней долго не влезет
сломанная дрожью рука в рукав.";
 
$lines = explode("\n", $text);

foreach ($lines as &$line) {
    $line = preg_split('//u', $line, -1, PREG_SPLIT_NO_EMPTY);
} 

$longestLineLength = max(array_map('count', $lines));

for ($i=0; $i<$longestLineLength; $i++) {
    for ($j=0; $j<count($lines); $j++) {
        if (array_key_exists($i, $lines[$j])) {
            echo " " . $lines[$j][$i]. " |";
        } else {
            echo "   |";
        }
    }
    echo "\n";
}