Ok, so same mixin class as before (my initial response to Boris) but this time we use it in a cCjGridColumn (not a cDbCjGridColumn)

Class cDemoCJGridColumn is a cCJGridColumn
    Import_Class_Protocol mixin_cCJGridProgressBar
    Procedure Construct_Object
        Forward Send Construct_Object
        Send Define_cCJGridProgressBar_Properties
    Procedure OnCreateColumn
        Boolean bProgress 
        Forward Send OnCreateColumn
        Get pbProgress to bProgress
        If bProgress Begin
            Delegate Set ComEnableMarkup to True

And then we can use this inside an example view. Here I've taken the example for a cCjGrid (from the help) but I've added an additional column to show a progress bar

    Object oCustomerGrid is a cCJGrid
        Set Size to 200 300
        Set peAnchors to anAll
        Set pbReadOnly to True
        Set pbSelectionEnable to True      
        Object oCustomer_Customer_Number is a cCJGridColumn
            Set piWidth to 71
            Set psCaption to "Number"
            Set peDataType to Mask_Numeric_Window
            Set psMask to "######"
        Object oCustomer_Name is a cCJGridColumn
            Set piWidth to 257
            Set psCaption to "Customer Name"
        Object oCustomer_Status is a cCJGridColumn
            Set piWidth to 66
            Set psCaption to "Status"
            Set pbCheckbox to True
            Set psCheckboxTrue to "Y"
            Set psCheckboxFalse to "N"
        Object oProgressBar_Column is a cDemoCJGridColumn
            Set piWidth to 206
            Set psCaption to "Progress"
            Set pbProgress to True
            // Here you will need to determine what values to use. Typically this might be a global buffer value
            Procedure OnSetProgressBarValue Boolean ByRef bVisible String ByRef sLabel Number ByRef nPercentage
                Integer iRecs
                Move True to bVisible
                Move "Example" to sLabel
                Get_Attribute DF_FILE_RECORDS_USED of (RefTable(Customer)) to iRecs
                Move ((Customer.Customer_Number/iRecs)*100) to nPercentage
        Procedure LoadData 
            Handle hoDataSource
            tDataSourceRow[] TheData
            Boolean bFound
            Integer iRows iNum iName iStatus iProgress
            Get phoDataSource to hoDataSource
            // Get the datasource indexes of the various columns
            Get piColumnId of oCustomer_Customer_Number to iNum
            Get piColumnId of oCustomer_Name            to iName
            Get piColumnId of oCustomer_Status          to iStatus
            Get piColumnId of oProgressBar_Column       to iProgress
            // Load all data into the datasource array
            Clear Customer
            Find ge Customer by 1
            Move (Found) to bFound
            While (bFound)
                Move Customer.Customer_Number to TheData[iRows].sValue[iNum] 
                Move Customer.Name            to TheData[iRows].sValue[iName] 
                Move Customer.Status          to TheData[iRows].sValue[iStatus] 
                Get DisplayProgress of oProgressBar_Column to TheData[iRows].sValue[iProgress]
                Find gt Customer by 1
                Move (Found) to bFound
                Increment iRows
            // Initialize Grid with new data
            Send InitializeData TheData
            Send MovetoFirstRow

Obviously this is just a silly example in which I'm calculating a progress value based on the customer number and total number of customer records, but you get the point.