I think xpath is a good way to extract the value. For this I assume that the position of the order number row is allways the same. The code below does the trick for me.
<?php
$str = '<table class="adminlist">
<tbody><tr>
<td>Payment Name</td>
<td align="left"><span class="vmpayment_name">Aurthorize.net</span><span class="vmpayment_description">New payment gateway</span></td>
</tr>
<tr>
<td>Order number</td>
<td align="left">9b27041</td>
</tr>
<tr>
<td>Amount</td>
<td align="left">51.30 USD</td>
</tr>
<tr>
<td>Transaction ID</td>
<td align="left">2200484213</td>
</tr>
</tbody></table>';
$dom = new DOMDocument();
$dom->loadHTML($str);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//tr[2]/td[2]");
$node = $nodes->item(0);
echo $node->textContent;