Custom CP Element Indexes
For the second part of your question, look into Element Sources. You might be able to pull off  something fancy in a module, where certain users have access to different sources.
For the first part of your question, look into the EVENT_REGISTER_TABLE_ATTRIBUTES and EVENT_SET_TABLE_ATTRIBUTE_HTML events. Here is a rough example of how it will look...
// Add index table attributes
Event::on(
    Entry::class,
    Element::EVENT_REGISTER_TABLE_ATTRIBUTES,
    static function(RegisterElementTableAttributesEvent $event) {

        $event-&gt;tableAttributes['computedColumn'] = ['label' =&gt; 'Computed Column'];
        
    }
);

// Modify index table display values
Event::on(
    Entry::class,
    Element::EVENT_SET_TABLE_ATTRIBUTE_HTML,
    static function(SetElementTableAttributeHtmlEvent $event) {

        /** @var Entry $entry */
        $entry = $event-&gt;sender;

        switch ($event-&gt;attribute) {
            case 'computedColumn': // How to identify a computed column
                $event-&gt;html = 'any valid HTML';
                break;
            case 'field:101': // How to identify a normal field
                $event-&gt;html = 'whatever you want it to be';
                break;
        }
        
    }
);