Use the HTML template for Email smart service. and manually form the html table data in an expression rule. supply expression rule output as input for the ### place holder(tableBody in the below example). Hopefully this should address your requirement.
Below is the sample HTML template.
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
</style>
</head>
<body>
<table style="width:100%">
###tableBody###
</table>
</body>
</html>
Sample expression Rule:
a!localVariables(
local!dataDict: {
a!map(firstName: "abc", lastName: "qwe", age: 23),
a!map(
firstName: "qqqq",
lastName: "ppppp",
age: 29
),
a!map(
firstName: "wwww",
lastName: "vvvvv",
age: 39
)
},
local!tableBody: "<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>" & char(10) & joinarray(
a!forEach(
items: local!dataDict,
expression: concat(
"<tr><td>",
fv!item.firstName,
"</td><td>",
fv!item.lastName,
"</td><td>",
fv!item.age,
"</td></tr>",
char(10)
)
),
""
),
local!tableBody
)