Analogports?
B=GETADC(1)
C=GETADC(2)

Beides nacheinander abfragen.

Bei digitalen Ports das gleiche.

Ich glaube du traust deinem AVR zu wenig zu
Bedenke, das er bei 16MHz etwa 16.000.000 Befehle pro Sekunde ausführt. (Ein PIC nur etwa 8.000.000 bei 16MHZ (et gibt aber auch µC die 4 Takte pro Befehl benötigen.))
Falls deine Angst ist, das nicht die besagten Ports gleichzeitig angefragt werden können, kann ich dich beruhigen. Das geht tatsächlich nicht. Aber wie hier auch schon gesagt, kann ein PC das auch nicht!
Das Abfragen von 2 digitalen Ports nacheinander benötigt 2 Taktzyklen. Bei 16MHz und damit 16 Millionen Takte pro Sekunde kannst du dir ja ausrechenen, wie viele µs es dauert, bis dein AVR weiss, ob die abgefragten Ports High oder Low sind.