He was certainly not using the awfully slow symbolic ring
sage: x,y,z,t,u = SR.var('x,y,z,t,u')
sage: f = (1 + x + y + 2*z^2 + 3*t^3 + 5*u^5)^6
sage: g = (1 + u + t + 2*z^2 + 3*y^3 + 5*x^5)^6
sage: %time h = (f*g).expand()
CPU times: user 8.99 s, sys: 25.7 ms, total: 9.01 s
Wall time: 9.01 s
versus
sage: R.<x,y,z,t,u> = QQ[]
sage: f = (1 + x + y + 2*z^2 + 3*t^3 + 5*u^5)^6
sage: g = (1 + u + t + 2*z^2 + 3*y^3 + 5*x^5)^6
sage: %time h = f*g
CPU times: user 191 ms, sys: 0 ns, total: 191 ms
Wall time: 191 ms
This 0.2 sec corresponds perfectly to his multiplication benchmarks.