I do not have a complete solution for you, but I have at least succeeded in breaking out the time stamp. Here is code I have modified from entry.php in the Buddypress legacy template:
<div class="activity-header">
<div class="activity-title">
<?php
$args = array(
'no_timestamp' => true,
);
bp_activity_action( $args );
?>
<?php if ( 'activity_comment' == bp_get_activity_type() ) : ?>
<div class="activity-inreplyto">
<strong><?php _e( 'In reply to: ', 'buddypress' ); ?></strong><?php bp_activity_parent_content(); ?> <a href="<?php bp_activity_thread_permalink(); ?>" class="view" title="<?php esc_attr_e( 'View Thread / Permalink', 'buddypress' ); ?>"><?php _e( 'View', 'buddypress' ); ?></a>
</div>
<?php endif; ?>
</div>
<div class="activity-time">
<?php echo bp_core_time_since( bp_get_activity_date_recorded() ); ?>
</div>
</div>
The bp_activity_action() function allows an argument to hide the timestamp. There is an explanation of how the argument works in the function code, which you can find in buddypress\bp-activity\bp-activity-template.php.
In the code above, I have used the argument to hide the timestamp from the bp_activity_action() output. Then I have used the bp_core_time_since() function to output the timestamp, which, on my site, is formatted separately on another line.
You can see the formatted output here: https://i.stack.imgur.com/akbiS.jpg
There is some discussion of enhancing Buddypress to provide for separate output of the elements you mention. See https://buddypress.trac.wordpress.org/ticket/5261. According to this discussion the changes were to have been implemented in Buddypress 2.0, but I am not able to find them.
Hope this helps. :-)