The upper bound for the 80 call is C(90) + 10, or 30. At least assuming no arbitrage.
Let's start by assuming the risk-free rate is 0 (this isn't a problem, but the math is clearer without it), so we don't have to discount the price. Then, the call price is given by $C(K) = E_t[(S_T - K)^+]$, which gives:
\begin{array}
$C(K - 10) &= E_t[max(S_T - (K - 10), 0)] \\
&= E_t[max(S_T - K + 10, 0)] \\
&\leq E_t[max(S_T - K, 0) + 10] = E_t[max(S_T - K, 0)] + 10 \\
\end{array}
Replacing K with 90, we get:
\begin{array}
$C(90 - 10) &\leq E_t[max(S_T - 90, 0)] + 10 \\
C(80) &\leq C(90) + 10 = 30 \\
\end{array}
Obviously, given a positive risk-free rate, the upper bound would be smaller, by discounting the 10\$.
Another way to see this is that the most one can earn over and above the 90\$ call with an 80\$ call is 10\$, with probability at most 1 (only the case if the 90\$ call has probability 1 of finishing ITM).