Here's a simple table of widths of all-lowercase and all-uppercase alphabets for several well-known fonts. (You can use the code to check the alphabet-widths of other fonts that you may find of interest for your project.)
Based on this obviously non-representative sample, you may want to give consideration to Minion Pro, EB Garamond, and especially Dante (also based on Garamond; creator: Giovanni Mardersteig) -- in addition to Times New Roman (represented in the table below by XITS) -- if one of your main objectives is to save trees.
As the example further shows, using a condensed sans-serif font such as "Frutiger Condensed" can really help save more trees. Of course, a sans-serif font (especially a condensed one) may not be suitable to your publication needs.

% !TEX program = lualatex
\documentclass[letterpaper]{article}
\usepackage[vmargin=0.25in]{geometry}
\usepackage{fontspec}
\newcommand\alphabet{abcdefghijklmnopqrstuvwxyz}
\newcommand\ALPHABET{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\newlength{\alphlength}
\newcommand{\measurealphwidth}{% this macro is used in each subsection below
\alphabet\ \ALPHABET\newline
Widths:
\settowidth{\alphlength}{\alphabet} \the\alphlength,
\settowidth{\alphlength}{\ALPHABET} \the\alphlength
}
\newcommand{\checkfont}[2]{%
\setmainfont{#1}
\subsubsection*{#2}
\measurealphwidth}
\pagestyle{empty}
\begin{document}
\noindent
Computer Modern (Default)
\medskip\noindent
\measurealphwidth
\checkfont{PalatinoNova-Regular.ttf}{Palatino nova LT}
\checkfont{SabonNextLTPro-Regular.otf}{Sabon Next LT Pro}
\checkfont{AldusLTStd-Roman.otf}{Aldus LT Standard}
\checkfont{OptimaNovaLTPro-Regular.otf}{Optima nova LT Pro}
\checkfont{xits-regular.otf}{XITS}
\checkfont{LinLibertine_R.otf}{Linux Libertine}
\checkfont{MinionPro-Regular.otf}{Minion Pro}
\checkfont{EBGaramond.otf}{EB Garamond}
\checkfont{DanteMTStd-Regular.otf}{Dante MT Standard}
\checkfont{arial.ttf}{Arial}
\checkfont{MyriadPro-Regular.otf}{Myriad Pro}
\checkfont{FrutigerLTStd-Cn.otf}{Frutiger Condensed}
\end{document}