Fontspec can do this for you. The Scale
option allows you to match the new font to the lower- or uppercase of the default font. It also allows you to scale manually. Here is an example using Times New Roman and Latin Modern.
\documentclass[12pt,a4paper]{article}
\usepackage{fontspec,lipsum}
\usepackage[margin=1cm]{geometry}
\defaultfontfeatures{Ligatures = TeX}
\setmainfont{Times New Roman}
\newfontfamily\notscaled{Latin Modern Roman}
\newfontfamily\scaledup[Scale = MatchUppercase]{Latin Modern Roman}
\newfontfamily\scaledlow[Scale = MatchLowercase]{Latin Modern Roman}
\newfontfamily\scaledman[Scale = .935]{Latin Modern Roman}
\newcommand*\comp[1]{#1 & \notscaled#1 & \scaledlow#1 & \scaledup#1 & \scaledman#1\\}
\setlength{\tabcolsep}{0pt}
\pagestyle{empty}
\begin{document}
\begin{tabular}{c c c c c}
\comp{A}
\comp{Q}
\comp{a}
\comp{y}
\end{tabular}\\
\begin{minipage}[t]{.2\textwidth}
\raggedright\lipsum[1]
\end{minipage}%
\begin{minipage}[t]{.2\textwidth}
\raggedright\notscaled\lipsum[1]
\end{minipage}%
\begin{minipage}[t]{.2\textwidth}
\raggedright\scaledlow\lipsum[1]
\end{minipage}%
\begin{minipage}[t]{.2\textwidth}
\raggedright\scaledup\lipsum[1]
\end{minipage}
\begin{minipage}[t]{.2\textwidth}
\raggedright\scaledman\lipsum[1]
\end{minipage}
\end{document}

To scale your main font, you can set it twice: (once for the font to be matched and once to actually set your font)
\setmainfont{Times New Roman}
\setmainfont[Scale = MatchUppercase]{Latin Modern Roman}