An easy, but manual solution, to this problem would be to reduce the value defined in \extrarowheight to 0.2cm and manually add an empty row of 1.1cm (1.1cm + 2 * 0.2cm = 1.5cm) above each row for which a top padding of 1.5cm is desired.
This approach has some limitations however. Because there is a minimum height a table row can have by default (see Column and row padding in tables), the minimal padding that it is possible to add with this approach is limited by the \baselineskip. It is, however, possible to reduce this value as described here: How to make a row in a table shorter?.
Below is a MWE that shows how it can be done:
\documentclass[12pt,letterpaper]{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{tabularx}
\begin{document}
\begin{table}
\centering
\setlength{\extrarowheight}{0.2cm}
\begin{tabularx}{8cm}{|p{2.5cm}|p{2.5cm}|X|} \hline
Top Left & Top Middle & Top Right \\[0.2cm] \hline
&& \\[1.1cm]
Middle Left & Middle & Middle Right \\[0.2cm] \hline
&& \\[1.1cm]
Bottom Left & Bottom Middle & Bottom Right \\[0.2cm] \hline
\end{tabularx}
\end{table}
\end{document}
Which results in:

Update (2015-07-27):
Below is an updated solution derived from the macro presented at: How to make a row in a table shorter?. It consists in a new command, which allows to add an extra custom row padding of a given height on a row by row basis.
\documentclass[12pt,letterpaper]{article}
\usepackage{tabularx}
% Modified from :
% https://tex.stackexchange.com/questions/84524/
% how-to-make-a-row-in-a-table-shorter/84536#84536
\makeatletter
\newsavebox\saved@arstrutbox
\newcommand*{\setarstrut}[1]{%
\noalign{%
\begingroup
\global\setbox\saved@arstrutbox\copy\@arstrutbox
\global\setbox\@arstrutbox\hbox{%
\vrule \@height #1
\@depth 0cm
\@width\z@
}%
\endgroup
}%
}
\newcommand*{\restorearstrut}{%
\noalign{%
\global\setbox\@arstrutbox\copy\saved@arstrutbox
}%
}
\makeatother
% New command to add an extra custom padding at the top of a row.
% Basically, it adds an empty row with the height value
% defined in the command.
% \paddingtop{height}{content}
\newcommand{\paddingtop}[2]{\setarstrut{#1} #2 \\ \restorearstrut}
\begin{document}
\begin{tabularx}{8cm}{|p{2.5cm}|p{2.5cm}|X|} \hline
\paddingtop{0.2cm}{&&}
Top Left & Top Middle & Top Right \\[2mm] \hline
\paddingtop{1.5cm}{&&}
Middle Left & Middle & Middle Right \\[2mm] \hline
\paddingtop{5.cm}{&&}
Bottom Left & Bottom & Bottom Right \\[2mm] \hline
\end{tabularx}
\end{document}
which results in:

\hlineas that those lines will show up in my worksheets and be part of how my students know where to write answers. I also don't know how I could easily see the vertical padding without them. I do not need the\booktabspackage for the MWE, though, so I'll remove it. – WeCanLearnAnything Jul 26 '15 at 07:39