If you don't have particular needs I think it's important to know that you can put a Rectangle in Tablix cell and then use it as a container for simple controls as TextBox, Line, Image, etc. laied out as you want.
If you still need to use subreport you could put a SubReport in Tablix cell and solve any problem in the LocalReport.SubreportProcessing event that occurs when a subreport is processed.
If you have a lot of records you can use a single Dataset and filtered it in the SubreportProcessing event, using the subreport Parameters that you already set in Designer Mode.
Private Sub SubreportProcessingHandler(sender As Object, e As SubreportProcessingEventArgs)
Dim dvFiltered As New DataView(Me.YourDataSet.Tables(0))
dvFiltered.RowFilter = "Parameter1 = " & CInt(e.Parameters.Item("yourParameter1").Values(0)) & " AND " _
& "Parameter2 = '" & CStr(e.Parameters.Item("yourParameter2").Values(0)) & "'"
e.DataSources.Add(New ReportDataSource("YourDataSourceName", dvFiltered.ToTable("YourDataSourceName")))
End Sub
For example, using a DataSet that contains master and details data, you can build a main report grouped by IdMaster and put a subreport in details section.

This is the subreport: please note that the DataSet is the same as main report but we also need 2 Parameters (IdMaster and IdRow) to display the correct data.

In the main report you need to link subreport Parameters to actual values of DataSet.

Then, the most important part: the SubreportProcessingHandler event. This event is triggered for every instance of the subreport in the main report, so if you have 100 rows / 100 subreports this event is triggedered 100 times: every time you need to specify which data you want to display, so you have to filter the DataSet using the 2 Parameters (IdMaster and IdRow) defined in the previous step and filled with values coming from master report.
Private Sub SubreportProcessingHandler(sender As Object, e As SubreportProcessingEventArgs)
Dim dvTest As New DataView(Me.dsTest.Tables(0))
dvTest.RowFilter = "IdMaster = " & CInt(e.Parameters.Item("parIdMaster").Values(0)) & " AND " _
& "IdRow = " & CInt(e.Parameters.Item("parIdRow").Values(0))
e.DataSources.Add(New ReportDataSource("DataSet_TEST", dvTest.ToTable("DataSet_TEST")))
End Sub
This is the result:

As I stated at the beginning of the answer, if you don't have particular needs you can use a Rectangle instead of a SubReport. Regarding this example you can obtain the same result using the green Rectangle as container.
