// Get the report ID
    List <Report> reportList = [SELECT Id,DeveloperName FROM Report where 
    DeveloperName = 'abc_Report'];
    String reportId = (String)reportList.get(0).get('Id');

    // Run a report
    Reports.ReportResults results = Reports.ReportManager.runReport(reportId);
    // Get the report extended metadata
    Reports.ReportExtendedMetadata rmd =   results.getReportExtendedMetadata();

    // Get detail columns from extended metadata
    Map<String,Reports.DetailColumn> colMap = rmd.getDetailColumnInfo();

    for(String key : colMap.KeySet()){
    System.debug('Key=' + Key + ' label=' + colMap.get(key).getLabel());
    }