Le persone nei commenti avevano ragione in quel TimeSpan è la strada da percorrere. Tuttavia la documentazione non era molto chiara su come usarlo.
Il modo corretto di utilizzare TimeSpan per il problema sopra è:
string insertstmt = "INSERT INTO tblAppt(appttime) VALUES (@ApptTime)";
NpgsqlCommand cmd = new NpgsqlCommand (insertstmt, con);
TimeSpan thetime = TimeSpan.Parse(txtCustTime.Text);
cmd.Parameters.Add("@ApptTime", NpgsqlDbType.Time );
cmd.Parameters["@ApptTime"].Value = thetime;
con.Open ();
cmd.ExecuteNonQuery ();
con.Close ();
Ho usato questo link come riferimento:https://docs.microsoft.com/en-us/dotnet/api/system.timespan?redirectedfrom=MSDN&view=netframework-4.7.2