Ok, la seconda versione che hai postato sembra più o meno come ti avevo consigliato di fare, non me ne ero accorto.

Innanzi tutto ti conviene fare uan form x ogni invio. Dalla form che invii con l'aggiornamento mi sembra che ci sia solo un campo text di nome 'quantita', col numero da aggiornare. Devi aggiungere un campo hidden col codice del prodotto da modificare, poi l'assegnazione da fare sarà:

Codice PHP:
$_SESSION['carrello'][$_POST['codice']]['quantita']=$_POST['quantita']; 
Ti posso chiedere per cosa stai sviluppando il progetto? Lo fai per esperienza o per un progetto reale?