Las personas en los comentarios tenían razón en ese TimeSpan es el camino a seguir. Sin embargo, la documentación no era muy clara sobre cómo usarlo.
La forma correcta de usar TimeSpan para el problema anterior es:
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 ();
Usé este enlace como referencia:https://docs.microsoft.com/en-us/dotnet/api/system.timespan?redirectedfrom=MSDN&view=netframework-4.7.2