See the question and my original answer on StackOverflow

You probably relied on a developper tools such as FireBug or Chrome, etc... to determine the XPATH for the nodes you're after.

You can' really do this as the XPATH given by such tools correspond to the in memory HTML DOM while the Html Agility Pack only knows about the raw HTML sent back by the server.

What you need to do is look at what's sent back (or just do a view source). You'll see there is no TBODY element for example. So you want to find anything discriminant, and use XPATH axes for example.

Here is a code that seems to work:

// get all TD nodes with ALIGN attribute set to left
foreach (var node in doc.DocumentNode.SelectNodes("//div[@id='contentHiscores']//td[@align='left']"))
{
    var item = lBox.Items.Add(node.InnerText.Trim());
    // use an 'XPATH axe': get all sibling TD nodes with ALIGN attribute set to 'right'
    foreach (var sibling in node.SelectNodes("following-sibling::td[@align='right']"))
    {
        item.SubItems.Add(sibling.InnerText.Trim());
    }
}