Can AJAX be enabled for a form element inside a tableselect row?
Here is my solution:


Add placeholders (like a simple string, or an empty array) to the table row, where the select lists should go.
Add select lists below the table, and check that they have fully functional AJAX callbacks.
Register a #pre_render function on the form which moves the select lists into the table. 


In the buildForm function:

$form['#pre_render'] = [[$this, 'preRender']];


And then in the form class:

public static function preRender(array $form) {
  foreach ($form['table']['#options'] as $delta =&gt; &amp;$row) {
    $row['select_lists']['data'] = $form['select_lists'][$delta];
    unset($form['select_lists'][$delta]);
  }
  return $form;
}


I also tried hook_form_alter, but it runs too early, and messes up the AJAX. Apparently, a pre_render function runs after the AJAX stuff has been set up by Drupal, and then we can move the element anywhere on the page without affecting the AJAX functionality.