The shop archive or in general any product-loop that passes through:
woocommerce/templates/archive-product.php
...or utilizes similar logic found in that template, by calling:
wc_get_template_part( 'content', 'product' );
which retrieves the following template:
woocommerce/templates/content-product.php
...will then make available the following actions:
Excerpt from: woocommerce/templates/content-product.php
(version 3.6.0 at the time of this answer)
/**
* Hook: woocommerce_before_shop_loop_item.
*
* @hooked woocommerce_template_loop_product_link_open - 10
*/
do_action( 'woocommerce_before_shop_loop_item' );
/**
* Hook: woocommerce_before_shop_loop_item_title.
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
/**
* Hook: woocommerce_shop_loop_item_title.
*
* @hooked woocommerce_template_loop_product_title - 10
*/
do_action( 'woocommerce_shop_loop_item_title' );
/**
* Hook: woocommerce_after_shop_loop_item_title.
*
* @hooked woocommerce_template_loop_rating - 5
* @hooked woocommerce_template_loop_price - 10
*/
do_action( 'woocommerce_after_shop_loop_item_title' );
/**
* Hook: woocommerce_after_shop_loop_item.
*
* @hooked woocommerce_template_loop_product_link_close - 5
* @hooked woocommerce_template_loop_add_to_cart - 10
*/
do_action( 'woocommerce_after_shop_loop_item' );
The hook you probably want is:
do_action( 'woocommerce_after_shop_loop_item' );
Therefore add the following to your theme functions.php
file or wherever your business logic is:
function wpse_360157_after_shop_loop_item() {
// add your logic here to print after the add-to-cart button, example:
// echo '<table>...</table>';
// OR...
// include_once( 'path/to/product-loop-table.php' );
// OR...
// get_template_part( 'product-loop-table.php' );
// Etc..
}
add_action( 'woocommerce_after_shop_loop_item' 'wpse_360157_after_shop_loop_item' );
Useful reading: