\documentclass[12pt,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[writefile]{listings}
\usepackage{babel}

\lstset{extendedchars} % important
\makeatletter
\lstnewenvironment{sidebyside}{%
	\global\let\lst@intname\@empty
	\setbox\z@=\hbox\bgroup
	\setkeys{lst}{language={},style={},basewidth=0.51em,%
		basicstyle=\small\ttfamily% or whatever
	} %
	\lst@BeginAlsoWriteFile{\jobname.tmp}%
}{%
	\lst@EndWriteFile\egroup
%	\ifdim \wd\z@>.5\linewidth %%% alternative?
%		\begin{center}%
%			\hbox to\linewidth{\box\z@\hss}%
%		\end{center}%
%		\leavevmode \catcode`\^^M=10\relax
%		\input{\jobname.tmp}%
%	\else
		\begin{center}%
			\begin{minipage}{0.45\linewidth}%
				\hbox to\linewidth{\box\z@\hss}%
			\end{minipage}%
			\qquad
			\begin{minipage}{0.45\linewidth}%
				\leavevmode \catcode`\^^M=10\relax
				\input{\jobname.tmp}%
			\end{minipage}%
		\end{center}%
%	\fi%
}
\makeatother
\begin{document}

\begin{sidebyside}
Ein \textit{schöner kurzer}
Test, der auch mit Umlauten
funktioniert bzw. funktionieren
würde ... :-)
\end{sidebyside}

\end{document}
