This solution is based on soul. \srotate takes the text and rotates the tokens, centered at the math axis. Because of the rotation the side bearings are missing, thus the code adds .05ex around the letters, hyphens get a little more space.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{soul}
\usepackage{graphicx}
\usepackage{lipsum}
\makeatletter
\newlength\srotate@axis
\DeclareRobustCommand*{\srotate}{%
\SOUL@setup
\let\SOUL@everyhyphen\srotate@everyhyphen
\let\SOUL@everyexhyphen\srotate@everyexhyphen
\let\SOUL@everytoken\srotate@everytoken
\settoheight\srotate@axis{$\vcenter{}$}%
\SOUL@
}
\newcommand*{\srotate@everytoken}{%
\srotate@token{\the\SOUL@token}%
}
\newcommand*{\srotate@everyexhyphen}[1]{%
\srotate@token{\raisebox{-\srotate@axis}[.1ex][.1ex]{#1}}%
}
\newcommand*{\srotate@everyhyphen}{%
\discretionary{%
\srotate@everyexhyphen{-}%
}{}{}%
}
\newcommand*{\srotate@token}[1]{%
\kern.05ex
\raisebox{\srotate@axis}{\rotatebox[origin=B]{90}{#1}}%
\kern.05ex
}
\makeatother
\begin{document}
\noindent
\srotate{Hello--world. Nam dui ligula, fringilla a, euismod sodales,
sollicitudin vel, wisi. Morbi auctor lorem non justo. Nam lacus
libero, pretium at, lobortis vitae, ultricies et, tellus. Donec
aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna,
vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit
mollis. Suspendisse ut massa. Cras nec ante. Pellentesque a nulla.
Cum sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Aliquam tincidunt urna. Nulla ullamcorper
vestibulum turpis. Pellentesque cursus luctus mauris.}
\end{document}

click to enlarge
Answer to the problem in comment
The letters have different total heights, e.g. Q has a larger depth than A.
The example can be modified by using a box with a fixed width for the letter:
\documentclass[a4paper,12pt,landscape]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{soul}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm,includeheadfoot]{geometry}
\makeatletter
\newlength\srotate@axis
\newlength\srotate@width
\DeclareRobustCommand*{\srotate}{%
\SOUL@setup
\let\SOUL@everyhyphen\srotate@everyhyphen
\let\SOUL@everyexhyphen\srotate@everyexhyphen
\let\SOUL@everytoken\srotate@everytoken
\settoheight\srotate@axis{$\vcenter{}$}%
\settoheight\srotate@width{\raisebox{\depth}{XQ}}%
\SOUL@
}
\newcommand*{\srotate@everytoken}{%
\srotate@token{\the\SOUL@token}%
}
\newcommand*{\srotate@everyexhyphen}[1]{%
\srotate@token{\raisebox{-\srotate@axis}[.1ex][.1ex]{#1}}%
}
\newcommand*{\srotate@everyhyphen}{%
\discretionary{%
\srotate@everyexhyphen{-}%
}{}{}%
}
\newcommand*{\srotate@token}[1]{%
\kern.1ex
\hbox to \srotate@width{%
\hfil
\raisebox{\srotate@axis}{\rotatebox[origin=B]{90}{#1}}%
\hfil
}%
\kern.1ex
}
\makeatother
\renewcommand{\familydefault}{\ttdefault}
\begin{document}
01: \srotate{AST0S Q0LEA NTQOS 2SE2N EA0S9 9ST9Q E9S0Q ST0NV LASLN 2E22L 0ALOT 2OSTO +}
02: \srotate{0O0VV 9N9QO ETVAN V2VST N9OVL 2SOAT ET2S2 LATO0 EL0OA LO0V9 VVEE2 AETSA +}
03: \srotate{00AVS 0E2ON 2ASQE A9NTQ EQ220 92SA9 00OSQ AEVV0 AA9NT STV0L 2NN29 VN9SS +}
04: \srotate{VE2V0 VSASO EL9EO S2TNQ QOSTE N99A0 VQ9LV TV20E L9ESV QO2L2 E0Q2S TOE02 +}
05: \srotate{E2VSQ L0VEN 9A2VA QNQ0V EO00N T909Q STLNV 0LTNO NS9TT T2Q0Q NATAE ENOLE +}
\end{document}

click to enlarge