MySql - Rows to Dynamic Columns
Maybe GROUP_CONCAT would be sufficient for your purposes? Instead of giving individual columns for each member in a group, it would give a single column with comma-separated lists of members. In your case I think it would be something like:

SELECT gp.group_name as `Group Name`,
   GROUP_CONCAT(CONCAT(lc.first_name, ' ', lc.last_name)) as `Client Names`
FROM `group` gp
...
INNER JOIN client_has_group chg ON (chg.group_gr_id = gp.gr_id) 
INNER JOIN loan_client lc ON (chg.loan_client_id = lc.id)
GROUP BY gp.group_name


Which should give something like:

+----------+----------------------+
|Group Name|   Client Names       | 
+----------+----------------------+
|Group A   |   Joan,Patrick,Smith |
+----------+-------------+--------+
|Group B   |   Samuel,Elise       |
+----------+----------------------+
|Group C   |   Marco              |
+----------+----------------------+