Since it's just integer calculations that hopefully don't surpass 2³¹−1 you can use \int_eval:n, \inteval (which is a front-end version of int_eval) or \pgfinteval (which is a clone of the previous) inside the key specification:
highlight/.style={
row \inteval{#1*(#1+1)/2}/.append style={nodes={fill=pink}}}
If you don't want to alter the highlight key you can use a forwarder, of course:
highlight/.style={row #1/.append style={nodes={fill=pink}}},
highlight'/.style={highlight=\pgfinteval{#1*(#1+1)/2}}
It would also be possible to create something like
highlight/.list wrap={1, ..., 1000}{\inteval{#1*(#1+1)/2}}`
if the previous suggestion are not nice enough.
Code
\documentclass[tikz]{standalone}
\usetikzlibrary{matrix}
\tikzset{
create column/.style={
matrix content/.initial=,
/utils/temp/.style={
matrix content/.append={##1\pgfmatrixendrow}},
/utils/temp/.list={#1},
node contents=\pgfkeysvalueof{/tikz/matrix content}}}
\begin{document}
\tikz[
highlight/.style={
row \inteval{#1*(#1+1)/2}/.append style={nodes={fill=pink}}}]
\matrix (m) [
matrix of nodes,
highlight/.list={1, ..., 1000},
create column={1, ..., 1000}];
\tikz[
highlight/.style={row #1/.append style={nodes={fill=pink}}},
highlight'/.style={highlight=\pgfinteval{#1*(#1+1)/2}}]
\matrix (m) [
matrix of nodes,
highlight'/.list={1, ..., 1000},
create column={1, ..., 1000}];
\end{document}