George Russell produced a stunning lap to beat Max Verstappen to pole position for the Canadian Grand Prix as McLaren were surprisingly outpaced in Montreal.