The information displayed on the Patch Status page uses a GridView control that is populated by the Microsoft.SharePoint.ApplicationPages.PatchStatusDataSourceView
object in the Microsoft.SharePoint.ApplicationPages.Administration assembly
(C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\ADMINBIN\Microsoft.SharePoint.ApplicationPages.Administration.dll
). This object is instantiated by the Microsoft.SharePoint.WebControls.AdministrationDataSourceControl object in Microsoft.SharePoint.dll
.
You could use that same data source to get your data. For example:
var adminDataSourceControl = new AdministrationDataSourceControl() { ViewName = "PatchStatus" };
gridview.AutoGenerateColumns = true;
gridview.DataSource = adminDataSourceControl;
gridview.DataBind();
This does get the data, however the only caveat I found is that it needs to run under the Central Administration site. You could dig further to figure out what resources you need to make it load elsewhere.