la PictureBox si aggiorna solo all'uscita del metodo, non ad ogni iterazione del ciclo... diversamente devi impostare i pixel chiamando un thread diverso (new Thread(()=>{//tuo codice setPixel//this.pictureBox1.Image = bit;}).Start(); ) per ogni modifica che vuoi appaia in una volta (ad esempio per ogni pixel o per ogni gruppo di pixel), in quel caso riesci a vedere il cambio 1 per volta, pur sempre considerando la velocità in cui questo può accadere... infatti considera che potrebbe essere abbastanza veloce da vederli quasi come se fossero un unico disegno