One way to look at it is this: if y= mx+ b is the equation of a line, then the slope, m, is the tangent of the angle, \theta, the line makes with the x-axis. If two lines are perpendicular then they form a right triangle with the x-axis as hypotenuse. The angle one of the lines makes with the x- axis, say \theta, will be acute, the other, \phi, will be obtuse.
Looking over this I see I have used the wrong words. I meant that one will be less that or equal to 45 degrees, the other larger than or equal to 45 degrees.
The angles inside that right triangle will be \theta and \pi- \phi and we must have \theta+ (\pi- \phi)= \pi/2 so that \phi- \theta= \pi/2.
Now use tan(a+ b)= \frac{tan(a)+ tan(b)}{1- tan(a)tan(b)} with a= \phi and b= -\theta:
tan(\phi- \theta)= \frac{tan(\phi)- tan(\theta)}{1+ tan(\phi)tan(\theta)}= tan\left(\frac{\pi}{2}\right)
But tan(\pi/2) is undefined! We must have the fraction on the left undefined which means the denominator must be 0: 1+ tan(\theta)tan(\phi)= 0 so that tan(\theta)tan(\phi)= -1 and that last is just "mm'= -1".