My recommendation is to have a task report grouped by project and program or just a project column and grouped by program. You can't in-line edit fields in a report unless it's a like object (so edit task-related fields in a task report). You can't group by program natively in a task report, but you can with this text mode grouping:
group.0.linkedname=project
group.0.name=
group.0.namekeyargkey.0=project
group.0.namekeyargkey.1=project:program:name
group.0.valuefield=project:program:name
group.0.valueformat=HTML
textmode=true
And of course have columns in the report for fields you need, like planned start date in your case.
If this helped you, please mark correct to help others : )