On Linux, the neighbour cache is available via netlink (specifically NETLINK_ROUTE), as is nearly all network configuration.
To get all neighbour records, send a Netlink message nlmsg_type=RTM_GETNEIGH to the kernel; see the iproute2 (ip neigh) source code for more information. You'll probably want to use a library for netlink communications, as the raw structures are a bit cumbersome.
If you're writing Python, pyroute2 can help.
There is no corresponding /proc file for this. (The ones that do exist in /proc are basically leftovers from previous era – new ones aren't being added.)