Ursache ist die Kombination aus innerer und äußerer Positionierung. Mit dem ersten optionalen Argument t gibst Du vor, dass die jeweilige `\parbox` mit der Grundlinie ihrer ersten Zeile auf der umgebenden Grundlinie eingefügt wird. In der linken Box (mit innerer t Ausrichtung) ist das die Grundlinie unter "Text". In der rechten Box (mit innerer vertikaler Zentrierung) ist es dagegen der obere Rand der \parbox. Sehen kannst Du das, wenn Du zum einen \fboxsep gleich Null setzt und zum anderen in der linken Box und zwischen den Boxen ein \hrulefill einfügst.
\documentclass{scrartcl}
\setlength\fboxsep{0pt}
\begin{document}
\fbox{\parbox[tt][2cm][tt]{4.5cm}{Text\hrulefill}}%
\hrulefill
\fbox{\parbox[tt][2cm][c]{4.5cm}{\centering{}Text}}
\end{document}
Die einfachste Lösung wäre es, die beiden Boxen vertikal aneinander zu zentrieren, d.h. bei beiden im ersten Argument c anzugeben.
\documentclass{scrartcl}
\usepackage{showframe}
\setlength\fboxsep{0pt}
\begin{document}
\fbox{\parbox[c][2cm][tt]{4.5cm}{Text\hrulefill}}%
\hrulefill
\fbox{\parbox[c][2cm][c]{4.5cm}{\centering{}Text}}
\end{document}
Wenn Du die äußere Ausrichtung nicht ändern kannst, dann könntest Du in der linken Box am Anfang ein \strut einfügen und dann die rechte Box um \ht\strutbox nach oben schieben.
\documentclass{scrartcl}
\usepackage{showframe}
\setlength\fboxsep{0pt}
\begin{document}
\fbox{\parbox[tt][2cm][tt]{4.5cm}{\strut Text\hrulefill}}%
\hrulefill
\fbox{\raisebox{\ht\strutbox}{\parbox[tt][2cm][c]{4.5cm}{\centering{}Text}}}
\end{document}
Und dann gibt es da noch das Paket
adjustbox, dass sich dafür eventuell auch verwenden lässt.
Gruß
Elke