The metadata API isn't for retrieving records, it is for retrieving information about the structure of those records. E.g. what fields are on a custom object and what data type each field is.
The partner API isn't really intended for consumption from Apex. It includes a number of schema features that aren't supported by Wsdl2Apex.
One of these is the
any element on the complexType sObject. This is important, as it is this element that would contain the sObject fields (beyond the Id) when retrieved via a SOQL query.
This will work if you have at least one Account in the target org and have the remote site settings setup to include https://login.salesforce.com and https://targetOrgPod.salesforce.com
partnerSoapSforceCom.Soap partner = new partnerSoapSforceCom.Soap();
partnerSoapSforceCom.LoginResult lr=partner.login('email@example.com', 'myPasswordInPlainText!PlusTheSecurityToken');
partnerSoapSforceCom.SessionHeader_element header=new partnerSoapSforceCom.SessionHeader_element();
partner.endpoint_x = lr.serverUrl;
partnerSoapSforceCom.QueryResult qr = partner.Query('Select Id from Account limit 1');
System.debug('Number of Query results:' + qr);
sobjectPartnerSoapSforceCom.sObject_x result1 = qr.records;
However, if you add anything to the returned field set beyond Id you will get an error due to the missing any element. Here is what happens when I try the SOQL
Select Id, Name from Account limit 1.
System.CalloutException: Web service callout failed: Unable to parse callout response. Apex type not found for element Name: Class.DFB.partnerSoapSforceCom.Soap.query: line 2048, column 1 AnonymousBlock: line 7, column 1 AnonymousBlock: line 7, column 1
You could potentially use the Enterprise WSDL, which will include explicit elements for each field. It won't be able to dynamically handle changes in schema though.
You might be better served by an alternative method of retrieving the data, such as: