Here you go:
1) Create custom field on non-inventory item
Label: Header and make sure show on printed is selected
It should look like that
If you want same fo inventory items just add same custom field on inventory item
2)Create/Edit template
Go to custom themes:
I did base template from first available

Open it and copy all text (CTRL+C)
Go back to themes and create new

And paste all from default template (CTRL+V)
So you should have copy of default template to edit
- Editing template
Lines 32 - 36 replace with:
<tr>
{% assign column_length = table.columns | size %}
{% for column in table.columns %}
{% if column.label != 'Code' and column.label != 'Header' %}
<td style="font-weight: bold; padding: 5px 10px; text-align: {{ column.align }}; border-left-width: 1px; border-bottom-width: 1px; border-top-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}{% if column.nowrap %}; white-space: nowrap; width: 80px{% endif %}">{{ column.label }}</td>
{% else %}
{% assign column_length = column_length | minus:1 %}
{% endif %}
{% endfor %}
</tr>
Lines 44-59 replace with
{% for row in table.rows %}
<tr>
{% for cell in row.cells %}
{% if table.columns[forloop.index0].label != 'Code' and table.columns[forloop.index0].label != 'Header' %}
<td style="padding: 5px 10px; text-align: {{ table.columns[forloop.index0].align }}; border-left-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}{% if table.columns[forloop.index0].nowrap %}; white-space: nowrap; width: 80px{% endif %}">
{% if table.columns[forloop.index0].label == 'Description' %}
<span><b>
{% for column in table.columns %}
{%- if column.label == 'Header' and row.cells[forloop.index0].text.size > 0 and row.cells[forloop.index0].text != ' ' -%}
{{ row.cells[forloop.index0].text | newline_to_br }}
{%- endif -%}
{% endfor %}
{% for column in table.columns %}
{%- if column.label == 'Code' and row.cells[forloop.index0].text.size > 0 and row.cells[forloop.index0].text != ' ' -%}
({{ row.cells[forloop.index0].text | newline_to_br }})
{%- endif -%}
{% endfor %}
</b></span>
<p style="margin:0; padding:0;">
{{ cell.text | newline_to_br }}
</p>
{% else %}
{{ cell.text | newline_to_br }}
{% endif %}
</td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
{% for column in table.columns %}
{% if column.label != 'Code' and column.label != 'Header' %}
<td style="border-bottom-width: 1px; border-left-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}"> </td>
{% endif %}
{% endfor %}
{% for total in table.totals %}
<tr>
<td colspan="{{ column_length | minus:1 }}" style="padding: 5px 10px; text-align: right{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.label }}</td>
<td style="border-color: #000; border-left-width: 1px; white-space: nowrap; border-right-width: 1px; border-bottom-width: 1px; padding: 5px 10px; text-align: right{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.text }}</td>
</tr>
{% endfor %}
Update template
4) Create non-inventory item
In the bottom you will see Header (Custom Field) - this will be you header for item
Description - obvious
Code - is optional, but if entered will be next to header in brackets
Create another service without code
5) Creating invoice
Add 3 lines: service with code, wothout code, and just line without selected item
6) Result
Enjoy!