[guided]The geometric point is that sums of points from two neighbouring rays land in the cone between those rays. Because neighbouring cones do not overlap, these sums can be counted inside the square $(B+B)\times(B+B)$ without overcounting.
Let $\Lambda \subset B/B$ be a finite slope set, written in increasing order:
\begin{align*}
\lambda_1<\lambda_2<\cdots<\lambda_m.
\end{align*}
For each adjacent pair of slopes, define
\begin{align*}
S_i := P_{\lambda_i}+P_{\lambda_{i+1}}
:= \{p+q : p \in P_{\lambda_i},\ q \in P_{\lambda_{i+1}}\},
\end{align*}
where $1 \leq i \leq m-1$.
First we check that each ordered pair of summands gives a different sum. Consider the map
\begin{align*}
P_{\lambda_i}\times P_{\lambda_{i+1}} &\to S_i \\
(p,q) &\mapsto p+q.
\end{align*}
Suppose $p+q=p'+q'$ for $p,p' \in P_{\lambda_i}$ and $q,q' \in P_{\lambda_{i+1}}$. Rearranging gives
\begin{align*}
p-p'=q'-q.
\end{align*}
The vector $p-p'$ lies on the line through the origin with slope $\lambda_i$, because both $p$ and $p'$ lie on that line. Similarly, $q'-q$ lies on the line through the origin with slope $\lambda_{i+1}$. Since $\lambda_i \neq \lambda_{i+1}$, these two lines intersect only at $(0,0)$. Hence $p-p'=(0,0)$ and $q'-q=(0,0)$, so $p=p'$ and $q=q'$. Thus the map is injective and
\begin{align*}
|S_i|=n_{\lambda_i}n_{\lambda_{i+1}}.
\end{align*}
Next, if $p=(p_1,p_2)$ and $q=(q_1,q_2)$ are points of $B \times B$, then
\begin{align*}
p+q=(p_1+q_1,p_2+q_2) \in (B+B)\times(B+B).
\end{align*}
Therefore each $S_i$ is contained in $(B+B)\times(B+B)$.
Finally, because all coordinates in $B$ are positive and $\lambda_i<\lambda_{i+1}$, every point of $S_i$ has slope strictly between $\lambda_i$ and $\lambda_{i+1}$. Distinct adjacent intervals of slopes are disjoint. Therefore the sets $S_i$ are pairwise disjoint as $i$ varies, and summing their sizes gives
\begin{align*}
\sum_{i=1}^{m-1} n_{\lambda_i}n_{\lambda_{i+1}}
=\sum_{i=1}^{m-1}|S_i|
\leq |(B+B)\times(B+B)|
=|B+B|^2.
\end{align*}[/guided]