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

$reg   = '/\n/';
$parts = preg_split($reg, $text);
$array = array();
foreach ($parts as $key => $value) {
    $lenght = mb_strlen($value);
    array_push($array, $lenght);
    $max = max($array);
}
function press($parts, $i)
{
    foreach ($parts as $key => $value) {
        $os     = mb_substr($value, $i);
        $letter = mb_substr($os, 0, 1);
        echo "$letter | ";
        if ($letter == '') {
            echo " ";
        }
        if ($letter == ' ') {
            echo "";
        }
    }
    echo "\n";
}
for ($i = 0; $i < $max; $i++) {
    press($parts, $i);
}