У меня была та же проблема, свойство border spacing добавляло пространство вокруг таблицы, и, насколько мне известно, не было возможности ограничить его только "внутренностью", поэтому вместо этого я использовал прозрачные границы:
table td {
border-left: 1em solid transparent;
border-top: 1em solid transparent;
}
Устанавливает «интервал границы» как обычно, за исключением того, что в верхней и левой части таблицы есть «нежелательный» интервал.
table td:first-child {
border-left: 0;
}
Выбирает первый столбец.
table tr:first-child td {
border-top: 0;
}
Выбирает элементы td первой строки (при условии, что верх таблицы начинается с элемента tr, соответственно измените th) .