Wenn du überall um die Tabelle herum eine einfache Linie haben willst, musst du oben und unten noch eine \hline machen.
Und nach deiner ersten p-Spalte hast du selber zwei Linien mit einem Leerzeichen dazwischen gesetzt. Und noch eine zweite p-Spalte, die du nicht benutzt. Wenn du das wegnimmst, sieht es so aus.
Code:
\documentclass[pdftex, a4paper, parskip, 12pt, final, oneside, listof=totoc, listof=flat, headings=small]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathptmx}
\renewcommand*\familydefault{\rmdefault}
\addtokomafont{disposition}{\rmfamily}
\usepackage{color}
\usepackage{longtable}
\usepackage{array}
\usepackage[table]{xcolor}
\begin{document}
\begin{longtable}{|l|r|c|p{2cm}|}
\hline
\rowcolor[gray]{.9}Linksbündige Spalte.&Rechtsbündige Spalte&Zentrierte Spalte&Parbox\\
\hline Kurzer Text.&Kurzer Text.&Kurzer Text.&Kurzer Text.\\
\hline
Text.&Text.&Text.&Text.\\
\hline
Text.&Text.&Text.&Text.\\
\hline
Text.&Text.&Text.&Text.\\
\hline
\caption{Caption}
\end{longtable}
Um die oberste Linie am Grau sehen zu können, musst du evtl. etwas zoomen, aber sie ist da.
Es wird übrigens empfohlen, auf senkrechte Linien in Tabellen zu verzichten. Ohne sieht es besser aus.
Lesezeichen