iText[Sharp] can indeed do what you want:
PdfReader read = new PdfReader(pdfPath);
AcroFields af = reader.getAcroFields();
String displayOptions[] = af.getListOptionDisplay(fldName);
String valueOptions[] = af.getListOptionValue(fldName);
That's Java code written off the cuff in the "Your Answer" box here, but I suspect the C# will be remarkably similar.
(is anyone else so accustomed to in-line expansions that they're expecting it outside their IDE? I keep hitting ctrl-space and expecting to see a list of available functions. :/ )
Display options are what the user sees, value options are what is submitted to the server. They are often identical, but not always. A list of countries might show their full name in the local language to the user, then use an international country code as the value... or it might both show and submit those codes. You get the idea.