Die Tabelle ist (auch in Markus' Beispielen) breiter als der Text: Jede Spalte, auch die erste und letzte hat vor der Spalte und danach einen Abstand von \tabcolsep. Markus verhindert das in seinem zweiten Beispiel vor der ersten Spalte mit @{}. Gibt man also p{0.2\linewidht}p{0.8\linewidth} als Spaltendeklaration an, so hat man eine Tabelle der Breite \tabcolsep+0.2\linewidth+\tabcolsep+\tabcolsep+0.8\linewidth+\tabcolsep=\linewidth+4\tabcolsep>\linewidth.
Dazu kommt, dass die Überschrift keine Überschrift ist. Eine
einfache Überschrift könnte man bei
scrartcl beispielsweise mit \minisec setzen:
\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\begin{document}
\minisec{Überschrift der Tabelle}
\begin{longtable}{@{}p{\dimexpr 0.2\linewidth-\tabcolsep}p{\dimexpr 0.8\linewidth-\tabcolsep}@{}}
\endfirsthead
Test & Test \\
Test & Test
\end{longtable}
\end{document}
Mit @{} vor der ersten und nach der letzten Spalte verhindere ich dabei den Spaltenabstand an dieser Stelle (so wie Markus in seinem zweiten Beispiel vor der ersten Spalte).
Man kann aber auch gleich eine echte Tabellenüberschrift verwenden:
\documentclass[12pt,captions=nooneline,captions=tableheading]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\setkomafont{caption}{\bfseries}
\begin{document}
\begin{longtable}{@{}p{\dimexpr 0.2\linewidth-\tabcolsep}p{\dimexpr 0.8\linewidth-\tabcolsep}@{}}
\caption*{Überschrift der Tabelle}\\
\endfirsthead
Test & Test \\
Test & Test
\end{longtable}
\end{document}
Mit \caption* statt \caption verzichte ich dabei auf die Nummerierung der Tabelle. Mit captions=nooneline verhindere ich, dass einzeilige Tabellenüberschriften zentriert werden. Mit captions=tableheading sorge ich dafür, dass auch wirklich eine Überschrift formatiert wird (also mit kleinem vertikalem Abstand danach statt davor).