Hola,
No, simplemente es que $res no es un array. Y como
Código PHP:
$res = $result['resultElements'];
es que $result['resultElements'] no es un array. Como eso depende de como google devuelva los resultados, no se que mas decirte. Bueno, que antes del foreach compruebes que $res es un array con is_array() e incluso que mires cuantos elementos tiene con count(), por si quieres poner un mensaje cuando no devuelva resultados.
Saludos.