Lando Norris claimed his first pole position for the Monaco Grand Prix, the McLaren driver besting home hero Charles Leclerc at the last moment.