Každý chytrý jak rádio, ale nikdo vlastně neví 
Je to jednoduše cache toho, co se děje na síti, jednoduše síťovka poslouchá broadcasty a když se třeba 192.168.1.10 s MAC XX1 zeptá kdo má IP 192.168.1.1, tak počítač si automaticky uloží že na MAC XX1 je 192.168.1.10, protože je ARP broadcastový, tak těch požadavků na síti koluje poměrně dost (pusť si někdy Wireshark) a ten seznam dáš do cache za pár vteřin.
ale stejně jsi neodpověděl na původní dotaz

.
Zdravím,
Kde ale vezme ten prvotní seznam IP adres v síti? Dostane seznam IP adres od routeru nebo pošle dotaz na celý rozsah z DHCP serveru? (snad se mi podařilo vyjádřit mojí myšlenku)
Žádný seznam neexistuje, každý prvek si spravuje svůj, pokud počítač nastartuješ a má prázdnou ARP cache, při prvním požadavku na danou IP se musí přes broadcast zeptat všech počítačů v síti, kdo má danou IP, jakmile dostane odpověď, uloží si jí do cache a poté provoz na danou IP posílá na danou mac adresu. Jak píše greenlinuxguru, ARP cache si také počítač plní odposloucháváním provozu na síti.
Dotaz neposílá na celý rozsah DHCP, ale podle vlastního subnetu na daném interfacu si odvodí, jestli je provoz směřován do lokální sítě (a tedy stejného subnetu) nebo externě, prakticky to ale bývá to stejné jako "rozsah DHCP". U lokální sítě se přes ARP ptá na mac adresu přes broadcast, u externí se ptá na mac adresu gateway serveru.
To platí pro ipv4, ipv6 již ARP nemá a obsahuje NDP, funguje to ale podobně, jen s tím rozdílem, že je větší snaha ověřovat toho, kdo proklamuje, že vlastní nějakou IP adresu (viz SEND protokol).