target - это тот компонент, который породил событие "клик". Если вам нужно знать какой компонент его поймал, то юзайте event.currentTarget. В вашем случае это будет строка.
Но в любом случае код выглядит так, будто его писал человек, одержимый бесом jQuery.
Вот так бы выглядел код, если бы его писал нерадивый angular программист, забывший про jQuery навсегда:
(в любом случае это лучше, чем пример в тексте вопроса, так как он не нуждается в каких-то дополнительных выкрутасах в контроллере и изменения дома не будут неожиданно потеряны в случае перерисовки компонента самим ангуляром по событию, не зависящиму от вас)
<tbody>
<ng-container *ngFor="let course of coursesList">
<tr (click)="course.isOpened != course.isOpened">
<td>{{course.Number}}</td>
<td>{{course.name}}</td>
<td>{{course.Start | date: "dd.MM.yy"}}</td>
<td>{{course.Finish | date: "dd.MM.yy"}}</td>
</tr>
<tr *ngIf="course.isOpened">
<td colspan="4">Here we go</td>
</tr>
</ng-container>
</tbody>
Нерадивый, потому что тут мутируется объект курса, что не есть хорошо.