1. DNS parsing is one of the features to be added to Pcap.Net in the future. You can vote for it in the Issue Tracker.
2. Once you have the UDP payload, you can manipulate it in different ways:
a. Use the indexer -  operator - to read each byte.
b. Enumerate the bytes (using foreach).
c. Use the ToMemoryStream() method to read the bytes in the payload from as a stream.
3. Incoming or outgoing is dependent on the IPv4 layer (source and destination). Request or response can be assumed using the ports from the UDP layer (source and destination, DNS server port is 53). You can also parse the DNS fields and see if it looks
like a request or response.